В случае реализации сессиями я делал так:
В каждом файле были строки:
PHP:
session_start();
_permission();
где:
PHP:
function _permission()
{
global $ok_user;
if(!session_is_registered("ok_user"))
{
login('');//Функция логин ввыводит форму для входа
exit();
}
}
И непосредственно сам вход (login.php):
PHP:
if(isset($_POST['login']))
{
$loginusername = $_POST['username'];
$loginpassword = $_POST['password'];
$sql="select * from users where user='".addslashes($loginusername)."' and pass='".md5($pass)."'";
$res=db_select($sql);
$n=mysql_num_rows($res);
if($n>0)
{
$ok_user=$loginusername;
session_register("ok_user");
Header("Location: index.php");
}
else
{
login('Неправильный логин или пароль.');
exit();
}
}
else
{
login('');
exit();
}
Теперь мне нужно сделать автологин, тоесть человек нажал чекбокс "запомнить меня" и ему через 3 дня уже опять не нужно вводить логин и пароль. Это нужно реализовать, как я понимаю с помощью кук.
И теперь начинаются вопросы:
1. Что писать в куку(Хеш пароля, ид, имя или что)?
2. Подойдет ли такая проверка в login.php
В куку ставлю
user_id = ид_пользователя
user_hash = md5(хэш_пароля_пользователя)
PHP:
if(!empty($_COOKIE["user_id"]) && !empty($_COOKIE["user_hash"]) && strlen($_COOKIE["user_hash"])===32)
{
if(запрос в бд where user_id=$_COOKIE[user_id] and pass=$_COOKIE["user_hash"])
{ авторизация }
else
{неавторизация}
}
else
{
авторизация приведена выше для сессий но с установкой куки на время 30 дней
}
-~{}~ 11.02.06 19:22:
Автор оригинала: Фанат
конкретный ответ
не использовать
А как же тогда можно одними сессиями реализовать автологин?