Урок достаточно сложный для новичков. Старалась все детально объяснить в комментариях.
<?php
ob_start();
session_start(); // Стартуем сессию
$user = array('nick' => 'Admin', 'pass' => '123456'); // Массив с данными пользователя. Для своих целей вы можете использовать базу данных.
/* Урок по созданию авторизации по COOKIE */
/* Этап 1:
Для начала создаем форму авторизации. Где мы вводим логин и пароль. Так же установим checkbox с функцией под названием "Запомнить меня".
Код будет следующий:
*/
echo '<form acrion="#" method="POST">
Введите логин:<br /><input type="text" name="nick" /><br />
Введите пароль:<br /><input type="password" name="pass" /><br />
<input type="checkbox" name="cookie" value="1" /> Запомнить меня<br />
<input type="submit" name="send" value="Авторизоваться" />
';
/* Этап 2:
После того, как была нажата кнопка "Авторизоваться", будет выполняться следующий код: */
if (!empty($_POST['send'])) { // Проверяем, нажата ли кнопка
if ($_POST['nick'] == $user['nick'] && $_POST['pass'] == $user['pass']) { // Проверяем на правильность введаенных данных
/* Если данные введены верно, то: */
$_SESSION['nick'] = $user['nick']; // Запоминаем ник
/* Если к тому же установлена галочка "Запомнить меня", то записывем введенные данные в COOKIE */
if (!empty($_POST['cookie'])) {
setcookie("nick", $_POST['nick'], time()+999999);
setcookie("pass", $_POST['pass'], time()+999999);
}
/* Этап 3:
После успешной авторизации, у нас внизу должен высветится ник, под которым мы сообственно и авторизовались. Ник будем считывается из массива SESSION
*/
if (!empty($_SESSION['nick'])) { // Проверяем, есть ли в сессиях ник
/* Если есть, то выводим */
echo $_SESSION['nick'] . ' <a href="?exit">[Выход]</a>';
} else {
/* Если же нет ника в сессиях, то ищем данные в куках */
if (!empty($_COOKIE['nick']) && !empty($_COOKIE['pass'])) {
/* Если куки сущетствуют, то проверяем данные... Так же как и в авторизации */
if ($_COOKIE['nick'] == $user['nick'] && $_COOKIE['pass'] == $user['pass']) { // Проверяем на правильность введаенных данных
/* Если данные введены верно, то: */
$_SESSION['nick'] = $user['nick']; // Запоминаем ник
echo 'Авторизация по кукам прошла успешно!';
} else {
echo 'Авторизация провалена!';
}
}
}
/* И функция выхода */
if (isset($_GET['exit'])) {
unset($_SESSION['nick']); // Уничтожаем сессию