Я изменял пример для изучения авторизации
<?
session_start();
include ('mysql.php');
if (isset($_GET['logout']))
{
if (isset($_SESSION['user_id']))
unset($_SESSION['user_id']);
setcookie('login', '', 0, "/");
setcookie('password', '', 0, "/");
// и переносим его на главную
header('Location: ../index.php');
exit;
}
if (isset($_SESSION['user_id']))
{
// юзер уже залогинен, перекидываем его отсюда на закрытую страницу
header('Location: index.php');
exit;
}
if (!empty($_POST))
{
$login = (isset($_POST['login'])) ? mysql_real_escape_string($_POST['login']) : '';
$query = "SELECT `salt`
FROM `users`
WHERE `login`='{$login}'
LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql) == 1)
{
$row = mysql_fetch_assoc($sql);
// итак, вот она соль, соответствующая этому логину:
$salt = $row['salt'];
// теперь хешируем введенный пароль как надо и повторям шаги, которые были описаны выше:
$password = md5(md5($_POST['password']));
$query = "SELECT `id`
FROM `users`
WHERE `login`='{$login}' AND `password`='{$password}'
LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
// если такой пользователь нашелся
if (mysql_num_rows($sql) == 1)
{
// то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя)
$row = mysql_fetch_assoc($sql);
$_SESSION['user_id'] = $row['id'];
// если пользователь решил "запомнить себя"
// то ставим ему в куку логин с хешем пароля
$time = 86400; // ставим куку на 24 часа
if (isset($_POST['remember']))
{
setcookie('login', $login, time()+$time, "/");
setcookie('password', $password, time()+$time, "/");
}
// и перекидываем его на закрытую страницу
header('Location: index.php');
exit;
}
else
{
die('Такой логин с паролем не найдены в базе данных. И даём ссылку на повторную авторизацию. — <a href="../index.php">Авторизоваться</a>');
}
}
else
{
die('пользователь с таким логином не найден, даём ссылку на повторную авторизацию. — <a href="../index.php">Авторизоваться</a>');
}}
?>