Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторнае работы по ЗИ / Лабораторная работа 2.doc
Скачиваний:
165
Добавлен:
02.05.2014
Размер:
100.35 Кб
Скачать

2.2. Выполнение аутентификации пользователей средствами управления сеансом в рнр

PHP (РНР Hypertext Preprocessor) - это серверный язык создания сце­нариев, разработанный специально для Web. В HTML-страницу можно внедрить код РНР, который будет выполняться при каждом ее посещении. Код РНР интерпретируется Web-сервером и генерирует HTML или иной вывод, наблюдаемый посетителем страницы. Синтаксис РНР основывает­ся на других языках программирования, в первую очередь на С и Perl.

HTTP-протокол иногда называют «протоколом без состояния». Это оз­начает, что данный протокол не имеет встроенного способа поддержки со­стояния между двумя транзакциями. Когда пользователь запрашивает друг за другом две страницы, HTTP не обеспечивает возможности уведомить, что оба запроса исходят от одного и того же пользователя. Это усложняет пере­нос между страницами введенных пользователем данных, таких как данные аутентификации.

Таким образом, идея управления сеансами заключается в обеспечении отслеживания пользователя в течение одного сеанса связи с Web-сайтом.

Реализация управления простым сеансом

Основными этапами использования сеанса являются следующие:

  • Запуск сеанса

  • Регистрация переменных сеанса

  • Использование переменных сеанса

  • Отмена регистрации переменных и закрытие сеанса

Заметим, что все перечисленные этапы не обязательно могут содержать­ся в одном сценарии, и некоторые из них могут находиться в нескольких сце­нариях. Рассмотрим каждый из этих этапов последовательно.

2.2.1.Запуск сеанса

Прежде чем можно будет воспользоваться функциональными возможно­стями сеанса, следует запустить сам сеанс. Существует несколько способов сделать это.

Но самый простой заключается в том, что сценарий начинается с вызо­ва функции :

session start () ;

Эта функция проверяет, существует ли идентификатор текущего сеан­са. Если нет, она его создает. Если же идентификатор текущего сеанса уже существует, она загружает зарегистрированные переменные сеанса.

2.2.2.Регистрация переменных сеанса

Для того чтобы получить возможность отслеживать переменные от од­ного сценария к другому, их необходимо зарегистрировать. Это делается путем вызова функции session_register (). Например, для регистрации пере­менной $myvar применяется следующий код:

$myvar=5 ; session register("myvar") ;

Данный оператор регистрирует имя переменной и отслеживает ее зна­чение. Отслеживание переменной будет осуществляться, пока не завершится сеанс, либо пока вручную не отменится ее регистрация.

За один прием можно зарегистрировать более одной переменной, пере­дав разделенный запятыми список имен переменных:

Session register ("myvar1","myvar2");

2.2.3.Использование переменных сеанса

Чтобы сделать переменную сеанса доступной для использования, сначала необходимо запустить сеанс.

После этого появляется доступ к этой переменной. Если включена опция register_globals, то доступ к этой переменной можно получить через сокра­щенную форму ее имени, например, $myvar. Если же упомянутая опция не включена, получить доступ к переменной можно через ассоциативный мас-сив $HTTP_SESSION_VARS,например ,$HTTP_SESSIQN_VARS["myvar”].

Проверить, является ли переменная зарегистрированной переменной сеанса, можно обратившись к функции session_is_registered(). Вызов функ­ции выполняется следующим образом:

$result=session_is_registered("myvar");

Эта функция проверит, является ли $myvar зарегистрированной пере­менной сеанса, и вернет true или false.

Можно поступить и по-другому — проверить массив $HTTP SESSION_VARS на предмет наличия в нем переменной.