Проблема с формой

Статус
Закрыто для дальнейших ответов.

Dilan

New Member
Регистрация
26.07.2006
Сообщения
5
Создал форму и скрипт обработчик, все это находится в одном файле.
Не заполняя полей нажимаю кнопку отправить, скрипт просит ввести данные в поле "Ваше имя".
Ввожу данные в поле "Ваше имя" и нажимаю на кнопку отправить.
Скрипт просит ввести данные в поле "Ваш email".
Проблема заключается в том, что после ввода данных в поле например "Ваше имя" и нажатию на кнопку отправить, данные сбрасываются и приходится вводить все заново.
Как сделать так, чтобы данные введеные в поля не исчезали, а скрипт продолжал проверять наличие данных в полях? Помогите уважаемые форумяне!
Вот обрезанный код, который проверяет только наличие данных в полях и код формы:

<?php
if(empty($_POST))
{
$resuls="";
}
else
{
if(empty($msg))
{
$resuls="Вы не ввели сообщение";
}

if(empty($email))
{
$resuls="Вы не ввели email";
}

if(empty($name))
{
$resuls="Вы не ввели имя";
}
}

?>

<html>
<head>
<style type=\"text/css\">
<!--
td {
font-family: Tahoma, Verdana;
font-size: 13px;
color: #000000;
}
.table {
border: 1px solid #000000;
}
.submit {
font-family: Tahoma, Verdana;
font-size: 13px;
color: #000000;
background-color: #CCCCCC;
border: 1px solid #000000;
}
-->
</style>
</head>

<body>
<table width="100%" height="100%">
<tr><td align="center" valign="middle">
<form action="index.php" method="post">
<table width="600" border="0" cellpadding="0" class="table">
<tr>
<td colspan="2" align="center"><h4>Контакты</h4></td>
</tr>
<tr>
<td align="center">&nbsp;</td>
<td align="center"></td>
</tr>
<tr>
<td width="149" align="left">Ваше имя*</td>
<td width="435"><label>
<input name="name" type="text" class="table" />
</label></td>
</tr>
<tr>
<td align="left">Ваш email*</td>
<td><label>
<input name="email" type="text" class="table"/>
</label></td>
</tr>
<tr>
<td align="left" valign="middle">Сообщение*</td>
<td><label>
<textarea name="msg" cols="60" rows="6" class="table"></textarea>
</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><label>
<input name="Submit" type="submit" class="submit" value="Отправить" style="cursor:hand" />
</label> <?php echo $resuls; ?> </td>
</tr>
</table>
</form></td></tr></table>
</body>
</html>
 

Nixen

New Member
Регистрация
25.07.2006
Сообщения
6
Если ты знаеш php нормально, то почему не догадался про Cookies: :unsure:
 

v0rbis

selfcoded
Регистрация
02.05.2005
Сообщения
923
зачем отправлять данные на сервак для проверки на пустоту?

жаваскрипт ин екшн:

<form action="index.php" method="post" onsubmit="if(name.value=='') {alert('Введите имя');name.focus();return false;}>

и дальше по такой же аналогии..

ну а если и надо всеж на стороне сервака...то

<input name="name" value="<?=$_POST['name'];?>" >

и все дела.. нах кукис???
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
Nixen, глупость говорите, куки здесь не нужны.

Вот у Вас должно вводиться имя. Если, например, человек имя ввел, а e-mail забыл, то он будет вводить всё заново, но: имя-то он ввёл! Мы ведь имя-то знаем! Значит делаем так:
<input name="name" type="text" class="table" value="<?=@$name ?>" />
и с остальными полями так же.
 

Nixen

New Member
Регистрация
25.07.2006
Сообщения
6
Ответил не я Nixen а младший брат Deol! :)).
 

v0rbis

selfcoded
Регистрация
02.05.2005
Сообщения
923
ну вот начинается. что за детский сад?? есть два чела - есть два реганых чувака и все дела. никфлуд ник-клоны запрещены в любых проявления.
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
Именно что: если ещё раз появится сообщение, что это не я, а брат, забаним обоих. Пусть регистрируется и отвечает за себя сам. Или пусть вообще не лезет.
 

Dilan

New Member
Регистрация
26.07.2006
Сообщения
5
После написания этой темы попробовал решить проблему с помошью сессий $_SESSION, получилось но не красиво.
______________________________________
Спасибо v0rbis получилось, но
При первоначальной загрузке страницы если использовать <input name="name" value="<?=$_POST['name'];?>", в поле "Ваше имя" появляется предупреждение "Notice: Undefined index: name in путь к файлу on line 84". Слегка модернизовал твой скрипт <? if(!empty($name)) { echo $_POST['name']; } ?> и все стало номально.
___________________________________________________________________
Спасибо deMone, с твоим скриптом <?= @$name ?> все работает замечательно.
И вопрос: если в значение value="" поставить <?= $name ?> без @, то вылезает Notice: Undefined index: name in путь к файлу on line 84, а если с @, то все хорошо. Что означает символ @ перед переменной $name ?
 

Вложения

v0rbis

selfcoded
Регистрация
02.05.2005
Сообщения
923
@ = гасит вывод ошибок и тп
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
собака подавляет ошибки.
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
можно обойтись без собаки, но тогда только так:
<?=(isset($name)?$name:'') ?>
 
Статус
Закрыто для дальнейших ответов.
Верх Низ