| |
|
|
| | То есть происходит следующее. При неверной введенной паре логин-пароль пользователь направляется обратно на страницу авторизации - плюс выдается сообщение об ошибке.
Второй раз вводится правильная пара, но отправляются снова первые данные. Я проверял - выводил на целевой странице, какие данные получены из массива.
Зато в третий раз, какие логин и пароль не введи - авторизация будет успешной, т.к. отправляются данные, введенные при второй попытке.
И т.д. То есть идет отставание на один шаг. Разобраться нужно довольно срочно. Большое спасибо всем ответившим. | |
| |
|
|
| |
|
|
| |
для: ck
(24.10.2005 в 14:49)
| | | Выложите пожалуйста код... | |
| |
|
|
| |
|
|
| |
для: 10100100
(24.10.2005 в 14:58)
| | | Код довольно длинный. Действительно, используются и SESSION и COOKIE - но при условии входа с другой страницы, что определяется переменными в массиве _GET - $page и $a. В нашем случае, ссылка - чистый адрес: start.php. То есть эти переменные не определены.
<?php
$connect=mysql_connect("localhost", "root", "");
mysql_select_db("addlink", $connect);
$page=$_GET['page'];
if (!isset ($page))
{
$page=1;
if (isset ($a))
{
session_start();
$login=$_SESSION['login'];
$pass=$_SESSION['pass'];
unset($_SESSION['login']);
unset($_SESSION['pass']);
session_destroy();
}
else
{
$login=$_POST['login'];
$pass=$_POST['pass'];
}
setcookie("kkl", $login, time() + 8600);
setcookie("kkp", $pass, time() + 8600);
}
if (isset($page))
{
$login=$_COOKIE['kkl'];
$pass=$_COOKIE['kkp'];
}
$str="SELECT * FROM users";
$ask=mysql_query($str, $connect);
while ($masl=mysql_fetch_array($ask))
{
if ($login == $masl['LOGIN'])
{
$getl=$masl['LOGIN'];
$oklog=1;
break;
}
}
if ($oklog!=1)
{
?>
<script>
<!--
location.href = "center.php?mist=7";
//-->
</script>
<?php
exit();
}
$strn = "SELECT * FROM users WHERE LOGIN = '$getl'";
$askn = mysql_query($strn, $connect);
while ($masp=mysql_fetch_array($askn))
{
$getp=$masp['PASS'];
if ($pass == $masp['PASS'])
{
$okpass=1;
break;
}
}
echo $okpass."<br>";
echo $getl."<br>";
echo $pass."<br>";
echo $getp."<br>";
if ($okpass!=1)
{
?>
<script>
<!--
//-->
</script>
<?php
exit();
}
?> | |
| |
|
|
| |
|
|
| |
для: ck
(24.10.2005 в 15:07)
| | | Вы знаете, где-то я все же запутался с определенными и неопределенными страницами, с сессиями и COOKIES. Удалил все, с ними связанное из кода - рабтает нормально. Значит, ошибка в них. По идее, при неопределенных переменных _GET они вообще не должны участвовать. Но, видимо, участвует. | |
| |
|
|
| |
|
|
| |
для: ck
(24.10.2005 в 15:17)
| | | Господа, я нашел ошибку. Забыл, что у меня прописано:
If (!isst $page)
{
$page = 1;
}
Поэтому потом все операции с COOKIE, предназначенные для страницы с определенной $page относятся и сюда. Всем спасибо. | |
| |
|
|
| |
|
|
| |
для: ck
(24.10.2005 в 14:49)
| | | может быть у Вас логин и пароль куда-то записываются (например, в $_SESSION), а потом берутся оттуда, а не из $_POST? хотелось бы на код взглянуть. | |
| |
|
|