|
|
|
|
<?php
// соединение с базой данных
include "config.php";
// сравниваем переданный идентификатор из формы с
// текущим идентификатором сессии
if($_POST['session_id'] != session_id()) exit();
// если переданный параметр чекбокса = yes
//то устанавливаем время жизни куки 2 недели, иначе кук:))) живет до конца сессии
if($_POST['twoweeks'] == "yes") $time_cookie = time()+336*3600;
// запрос для посетителя с именем $_POST['Username']
$query = "SELECT pass FROM users WHERE name='".$_POST['Username']."'";
$nme = mysql_query($query);
if(!$nme) exit("Ошибка выполнения запроса");
// если запрос вернул результат - производим дальнейшую обработку
if(mysql_num_rows($nme) > 0)
{
// получаем пароль
$pass = mysql_result($nme, 0);
// сравниваем пароль из базы данных и введённый посетителем
if (md5($_POST['Password']) == $pass)
{
//if(session_start()) {
// записываем имя пользователя
// и хэш его пароля в сессию
//$_SESSION['user'] = $_POST['Username'];
//$_SESSION['password'] = md5($_POST['Password']);
if(isset($_POST['Password']) && isset($_POST['Username']))
{
// запись переданных параметров пара логин-пароль в cookie
$_COOKIE['Password'] = $_POST['Password'];
$_COOKIE['Username'] = $_POST['Username'];
}
setcookie("log_in_pass", $_COOKIE['Password'], $time_cookie);
setcookie("log_in_name", $_COOKIE['Username'], $time_cookie);
// осуществляем переход на главную страницу админки
echo "<html><head>
<meta http-equiv='refresh' content='0; url=index.php'>
</head>";
// }
} else exit("Неверный пароль");
}
// если в результате запроса не получено ни одной
// строки - значит посетитель с таким именем не зарегистрирован
else exit("Пользователь не зарегистрирован");
?>
|
вопроса собственно всего два:
1) Что здесь не так и как исправить?
2) Почему при проверке в другом скрипте
if(isset($_COOKIE['Username']) && isset($_COOKIE['Password']) ) {
|
чуда авторизации (или аутентификации) не происходит??? (вроде как параметры $_COOKIE['Username'] или $_COOKIE['Password'] не существуют и равны "") :(((
Благодарю за внимание! | |
|
|
|
|
|
|
|
для: afdm
(14.01.2008 в 21:07)
| | Вы почему-то устанавливаете cookies с именами "log_in_name" и "log_in_pass", а проверяете $_COOKIE['Username'] и $_COOKIE['Password'].
> // запись переданных параметров пара логин-пароль в cookie
> $_COOKIE['Password'] = $_POST['Password'];
> $_COOKIE['Username'] = $_POST['Username'];
Тут в cookies ничего не записывается. Очевидно, Вы перепутали с $_SESSION. | |
|
|
|
|
|
|
|
для: Unkind
(14.01.2008 в 21:14)
| | да возможно... просто прочитал очень много тем по этому вопросу... возможно запутался... :(((
а как надо? подскажите...
заранее спасибо! | |
|
|
|
|
|
|
|
для: afdm
(14.01.2008 в 22:14)
| | Наверное, сменить имена "log_in_*" на Ваши, как считаете?
setcookie("Password", $_COOKIE['Password'], $time_cookie);
setcookie("Username", $_COOKIE['Username'], $time_cookie); | |
|
|
|
|
|
|
|
для: Unkind
(14.01.2008 в 22:31)
| | И только? или ещё есть баги? | |
|
|
|
|
|
|
|
для: afdm
(14.01.2008 в 22:49)
| | Ну есть SQL Injection. Поищите сами - запрос вроде и так всего один. | |
|
|
|
|
|
|
|
для: Unkind
(14.01.2008 в 22:58)
| | да про инъекции я знаю. это обязательно предусмотрю. а где можно ещё почитать про куки, сессии и т.д. и т.п. | |
|
|
|
|