Реализация авторизации на сайте с помощью PHP и сессий

Шаблонный стандартный вариант без использования БД с пользователями.

Задача:

Предоставить доступ к определенной странице сайта по логину и паролю.

Решение:

Для авторизации надо создать к примеру 3 файла:

Index.php — здесь форма для авторизации, ввод логина и пароля;

Login.php – здесь происходит проверка авторизации;

Sekret.php – здесь страница доступ к которой только для авторизированных пользователей;

Листинг этих файлов ниже

Листинг index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Вход в систему</title>
</head>
<body>
<form action="login.php" method="post">
<table align=center>
<tr>
<td>Логин:</td>
<td><input type="text" name="login" /></td>
</tr>
<tr>
<td>Пароль:</td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" class="buttons" value="Войти" /></td>
</tr>
</table>
</form>
</body>
</html>

Листинг файла Login.php

<?
//Запуск сессий;
session_start();

if (isset($_POST['login']) && isset($_POST['password']))
{
// получаем данные из формы с авторизацией
$login = mysql_real_escape_string($_POST['login']);
$password = $_POST['password'];
//проверка пароля и логина
if (($login=='a123')&& ($password=='123')){
echo ("логин совпадает и пароль верны");
$_SESSION['Name']=$login;
// идем на страницу для авторизованного пользователя
header("Location: /author/sekret.php");
}
else
{die('Такой логин с паролем не найдены в базе данных.');
}
}
?>

Листинг Sekret.php

<?
//Запуск сессий;
session_start();
//если пользователь не авторизован

if (!(isset($_SESSION['Name'])))
{
//идем на страницу авторизации
header("Location: /author/index.php");
exit;
};
//Выводим саму страницу для авторизованных пользователей
$nm =$_SESSION['Name'] ;
echo ("<div style=\"text-align: center; margin-top: 10px;\">");
print "Пользователь системы $nm <br> ";
print "Вы на секретной странице $nm <br> ";
?>

Важно:

Чтобы сессии работали необходимо в начале каждой страницы запускать session_start();