Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше
Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике
31.3. PHP: Практическое применение сессий
Теперь обратимся к практическому применению механизма сессий. Рассмотрим пару довольно простых и то же время полезных примеров.
Авторизация пользователя
Вопросы по авторизации пользователей с помощью PHP-сессий постоянно задаются в конференциях по Web-программированию. Механизм авторизации
пользователей в системе с помощью сессий довольно хорош с точки зрения безопасности (см. п. 31.4).
Наш пример будет состоять из трех файлов: index.php, authorize.php и secretplace.php. Файл index.php содержит форму, в которую пользователь введет свой логин и пароль. Эта форма передаст данные файлу authorize.php, который в случае успешной авторизации допустит пользователя к файлу secretplace.php, а в противном случае выдаст сообщение об ошибке.
Пример 31.5. Практическое применение. Файл index.php
<html>
<head>
<title>Введите пароль</title>
</head>
<body>
<form action="authorize.php" method="post">
Логин: <input type="text" name="user_name"><br>
Пароль: <input type="password" name="user_pass"><br>
<input type="submit" name="Submit">
</form>
</body>
</html>
Пример 31.6. Практическое применение. Файл authorize.php
<?php
// открываем сессию
session_start();
// проверяем, были ли данные отправлены формой
if($Submit) {
// проверяем данные на правильность. В этом случае
// имя пользователя и пароль вписаны прямо в код, но на практике
// целесообразней проверять логин/пароль в базе данных
//и при совпадении давать доступ пользователю
if (($user_name=="cleo") && ($user_pass == "password")) {
$logged_user = $user_name;
// запоминаем имя пользователя
session_register("logged_user");
// и переправляем его на "секретную" страницу
header( "Location: secretplace.php" );
exit;
}
}
// если что-то пошло не так, то пользователь получит сообщение об сшибке
?>
<html>
<body>
Вы ввели неверный пароль!
</body>
</html>
Пример 31.7. Практическое применение. Файл secretplace.php
<?php
// открываем сессию
session_start() ;
/*
просто зайти на эту страницу нельзя. Если
имя пользователя не зарегистрировано, то
перенаправляем его на страницу index.php
для ввода логина и пароля. Тут можно
много чего сделать, например запомнить
IP пользователя, и после третьей попытки доступа
закрыть этому пользователю доступ к файлам
*/
if(!isset($logged_user)) {
header("Location:index.php");
exit;
}
?>
<html>
<body>
Здравствуйте, <?php echo $logged user; ?>, вы на секретной странице!
</body>
</html>