Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

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>

<< Предыдущий параграф Следующий параграф >>
Оглавление