Ошибка при обработке формы

  • Автор темы Автор темы DV
  • Дата начала Дата начала

DV

Guest
Ошибка при обработке формы

Возникает такая проблема. Есть простая форма гостевой, где юзер указывает свое имя и оставляет сообщение и отправляет его на обработку. Так вот, если все поля заполнены, то все нормально сохранаяется, если нет - выводит текст о незаполненных полях, причем обоих, даже если и заполнено одно, а после заполнения оставшегося, всё равно пишет ошибку о незаполненных полях - обоих...

Код обработчика:
===

<?
session_start();
session_unset();

$result=1;
$errlist="";

$username = trim($username);
$username = strip_tags($username);
$username = str_replace("\"","&quot;", $username);
$comments = trim($comments);
$comments = strip_tags($comments);
$comments = str_replace("\"","&quot;", $comments);

session_register("username");
session_register("comments");

if(!isset($username) || $username=="")
{
$result=0;
$errlist ="<li>Так как Вас всё-таки зовут?</li>\n<br>";
}
if(strlen($username) > 50 || preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/",$username))
{
$result=0;
$errlist .="<li>Имя может содержать только русские или латинские буквы, знака подчеркивания и пробел и не может быть больше 50 символов</li>\n<br>";
}

if($comments=="" || strlen($comments) > 400)
{
$result=0;
$errlist .="<li>Вы забыли написать сообщение или оно больше 400 символов :))</li>";
}
//Если что-то неправильно
if ($result==0){

session_register("errlist");

Header("Location: index.php?err=1");exit;
}

//Если все ОК
if ($result==1)
{

mysql_query("insert into ".$table_name."
values(null,
now(),
\"$time\",
\"$username\",
\"$comments\",
\"$ip\",
\"$brouser\")") or die(mysql_error());


session_unregister("ucomments");
session_unregister("errlist");

Header("Location: index.php");exit;
}
?>
===

Где грабли??:)
 
тяжело навреное с регистер_глобалс код отладиживать, да?
особенно когда не понимаешь толкм как сесси работают

phpfaq.ru/session
phpfaq.ru/debug
 
neko
А на какой строке хоть мои беды в незнании начинаются?
 
ну и понял например что у тебя сессии вообще не используются фактически?
 
neko
Мне сессия нужна только для того, чтобы, если ошибка, вернуть в форму уже введенные данные. Так вот я не пойму, почему он выдает ошибку, даже когда все поля заполнены?? И это происходит после ошибки не заполнения одного из полей….
 
а мне сессия ненужна
и я непойму почему ты не читаешь что тебе пишут

сделай там хотя бы какой-нибудь var_dump( $_SESSION ) вначале, может тогда дойдет
 
Я наверно туплю, но я никак не пойму, если я все переменные сессии вначале скрипта аннулирую, почему он выдает ошибку о незаполненных полях????

-~{}~ 21.07.04 12:04:

приведенный скрипт - файла "записывальщика", а форма находится в index.php
 
http://phpfaq.ru/session

советую еще раз прочитать очень внимательно
особенно в тех местах где написано как собственно "передаются" переменные сессии
 
DV
тебе здесь НАФИГ не нужны сессии.
тебе привели пример, как проверить форму без них.
если ВНЯТНО сформулируешь, чем тебя не усстроил предложенный способ, тебе объяснят, что ты не понял
что это за блеянье
приведенный скрипт - файла "записывальщика", а форма находится в index.php
какая разница, в каком файле форма?
 
Сверху