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

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;
}
?>
===

Где грабли??:)
 

neko

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

phpfaq.ru/session
phpfaq.ru/debug
 

DV

Guest
neko
А на какой строке хоть мои беды в незнании начинаются?
 

neko

tеam neko
ну и понял например что у тебя сессии вообще не используются фактически?
 

DV

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

neko

tеam neko
а мне сессия ненужна
и я непойму почему ты не читаешь что тебе пишут

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

voland

Guest

DV

Guest
Я наверно туплю, но я никак не пойму, если я все переменные сессии вначале скрипта аннулирую, почему он выдает ошибку о незаполненных полях????

-~{}~ 21.07.04 12:04:

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

neko

tеam neko
http://phpfaq.ru/session

советую еще раз прочитать очень внимательно
особенно в тех местах где написано как собственно "передаются" переменные сессии
 

Фанат

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