Создаю куки при авторизации
setcookie ("login", $login, time() + 365*24*3600, '/');
setcookie ("pass", md5($login.$password), time() + 365*24*3600, '/');
Проверка куки
if (isset($_SESSION['id']))//если сесcия есть
{
if(isset($_COOKIE['login']) && isset($_COOKIE['pass'])) //если cookie есть, то просто обновим время их жизни и вернём true
{
setCookie("login", "", time() - 1, '/');
setCookie("pass","", time() - 1, '/');
setcookie ("login", $_COOKIE['login'], time() + 365*24*3600, '/');
setcookie ("pass", $_COOKIE['pass'], time() + 365*24*3600, '/');
}
else //иначе добавим cookie с логином и паролем, чтобы после перезапуска браузера сессия не слетала
{
$rez = mysql_qw('SELECT * FROM users WHERE id=?', $_SESSION['id']); //запрашиваем строку с искомым id
if (mysql_num_rows($rez) == 1) //если получена одна строка
{
$row = mysql_fetch_assoc($rez); //записываем её в ассоциативный массив
setcookie ("login", $row['login'], time() + 365*24*3600, '/');
setcookie ("pass", md5($row['login'].$row['password']), time() + 365*24*3600, '/');
}
}
}
else //если сессии нет, то проверим существование cookie. Если они существуют, то проверим их валидность по БД
{
if(isset($_COOKIE['login']) && isset($_COOKIE['pass'])) //если куки существуют.
{
$rez = mysql_qw('SELECT * FROM users WHERE login=?', $_COOKIE['login']); //запрашиваем строку с искомым логином и паролем
@$row = mysql_fetch_assoc($rez);
if(@mysql_num_rows($rez) == 1 && md5($row['login'].$row['password']) == $_COOKIE['pass']) //если логин и пароль нашлись в БД
{
$_SESSION['id'] = $row['id']; //записываем в сесиию id
}
else //если данные из cookie не подошли, то удаляем эти куки, ибо нахуй они такие нам не нужны
{
SetCookie("login", "", time() - 360000, '/');
SetCookie("pass", "", time() - 360000, '/');
}
}
else //если куки не существуют
{
}
}