|
|
|
| Добый день , всех с праздником!!!
Подскажите на форме регистрации есть генериующиеся числа и поле , куда эти числа нужно вводить при отправке данных , если они совпадают ,то данные отправляются, но вот проблема,даже при вводе правильного числа он пишет, что числа не совпадают :(
Есть предположение, что ошибка возникает из-за того, что число сравнивается с чем которое генерируется при обновлении страницы, после нажатия кнопки, а не с тем , которое уже выведеннго настраницу...
Вот код:
<?php header("Content-Type: text/html; charset=utf-8"); ?>
<?php $r=rand(1,999999);?>
if(isset($_POST['registr']))
{
$err = array();
if($rand!=$r)
$err[] = "Числа не совпадают.";
# Если нет ошибок, то добавляем в БД нового пользователя
if(count($err) == 0)
{
mysql_query(" INSERT INTO `regis` VALUES ('',NOW(),'$login','$password','$email','$salt')")
or die(mysql_error());
header("Location: registr.php"); exit();
}
else
{
print "<b>При регистрации произошли следующие ошибки:</b><br>";
foreach($err AS $error)
{
print $error."<br>";
}
}
}
?>
Введи число<? echo $r; ?>
<input name="rand" type="text" />
|
| |
|
|
|
|
|
|
|
для: Kaizer131
(14.02.2009 в 13:44)
| | Так не пойдет - у вас числа каждый раз разные. При первой загрузке данных - генерируется одно число, при отправке данных и повторной загрузки страницы - другое. Сгенерированное при первой загрузке число необходимо помещать в сессию и сравнивать результат с числом из сессии, а не с вновь сгенерированным числом, которое отличается от того, что предлагалось на первой странице. | |
|
|
|
|
|
|
|
для: cheops
(14.02.2009 в 13:47)
| | Хорошо ,а как это сделать ? | |
|
|
|
|
|
|
|
для: Kaizer131
(14.02.2009 в 13:58)
| | Примерно так
<?php
header("Content-Type: text/html; charset=utf-8");
session_start();
?>
<?php
if(empty($_POST['registr']))
{
$_SESSION['r']=rand(1,999999);
}
else
{
$err = array();
if($_SESSION['r'] != $_POST['rand']) $err[] = "Числа не совпадают.";
# Если нет ошибок, то добавляем в БД нового пользователя
if(count($err) == 0)
{
mysql_query(" INSERT INTO `regis` VALUES ('',NOW(),'$login','$password','$email','$salt')")
or die(mysql_error());
header("Location: registr.php"); exit();
}
else
{
print "<b>При регистрации произошли следующие ошибки:</b><br>";
foreach($err AS $error)
{
print $error."<br>";
}
}
}
?>
Введи число<? echo $_SESSION['r']; ?>
<input name="rand" type="text" />
|
| |
|
|
|
|
|
|
|
для: cheops
(14.02.2009 в 14:26)
| | спасибо, попробую :) | |
|
|
|