Авторизация через Cookie на PHP
Никогда её не использовал, предпочитая более современную авторизацию через массив $_SESSION
(впрочем, тоже требующий включённых cookies), а сейчас вот оказалось лень менять при адаптации скрипта. Оказалось, Cookie
надо посылать до всех HTTP-заголовков или же делать перезагрузку страницы после отправки
Cookie
, то есть, выполнять (в простейшем случае) код вида
if(isset($_POST['admin_login'])) { if($_POST['login'] == $settings['admin_name'] and $_POST['pass'] == $settings['admin_pass']) { setcookie("admin", "cookie_name"); header('Location: '.$_SERVER['HTTP_REFERER']); } else { die ('<center>Ошибка входа. Нажмите кнопку "Назад" в Вашем браузере</center>'); } }
где $settings
- PHP-массив настроек скрипта,
$_POST['login']
и $_POST['pass']
- переданные из формы HTML логин и пароль,
cookie_name
- имя Вашей куки.
В противном случае получите вход только со второго ввода логина или пароля (ну или после обновления страницы клавишей F5
).
08.09.2010, 14:48 [10403 просмотра]