DV
Guest
Ошибка при обработке формы
Возникает такая проблема. Есть простая форма гостевой, где юзер указывает свое имя и оставляет сообщение и отправляет его на обработку. Так вот, если все поля заполнены, то все нормально сохранаяется, если нет - выводит текст о незаполненных полях, причем обоих, даже если и заполнено одно, а после заполнения оставшегося, всё равно пишет ошибку о незаполненных полях - обоих...
Код обработчика:
===
<?
session_start();
session_unset();
$result=1;
$errlist="";
$username = trim($username);
$username = strip_tags($username);
$username = str_replace("\"",""", $username);
$comments = trim($comments);
$comments = strip_tags($comments);
$comments = str_replace("\"",""", $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;
}
?>
===
Где грабли??
Возникает такая проблема. Есть простая форма гостевой, где юзер указывает свое имя и оставляет сообщение и отправляет его на обработку. Так вот, если все поля заполнены, то все нормально сохранаяется, если нет - выводит текст о незаполненных полях, причем обоих, даже если и заполнено одно, а после заполнения оставшегося, всё равно пишет ошибку о незаполненных полях - обоих...
Код обработчика:
===
<?
session_start();
session_unset();
$result=1;
$errlist="";
$username = trim($username);
$username = strip_tags($username);
$username = str_replace("\"",""", $username);
$comments = trim($comments);
$comments = strip_tags($comments);
$comments = str_replace("\"",""", $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 символов

}
//Если что-то неправильно
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;
}
?>
===
Где грабли??
