Профессиональное программирование на PHP

Страница 349 из 591


360 Глава 14 Поддержка сеансов

Аналогично, перечисленные ниже параметры полезны для конфигурирования сеансов, передаваемых в строке запроса.

 session.use_only_cookies — отключает считывание идентификаторов сеансов из строки запроса. Это дополнительный параметр безопасности, который следует устанавливать, когда параметр use_trans_sid имеет значение false.

 url_rewriter, tags — по умолчанию— a=href, f rame=src, input=src, f orm= f akeentry. Задает теги, в которые будут автоматически дописываться параметры сеанса, если use_trans_id равно true. Например, чтобы идентификатор сеанса передавался вместе с изображениями, в список переписываемых тегов следует добавить img=src.

Кратко о расширении РНР Sessions

Для того чтобы использовать базовые сеансы в сценариях, необходимо вызвать функцию session_start () для инициализации сеанса, а затем добавить пары ключ/значение в массив $_SESSI0N. Приведенный ниже фрагмент кода создает сеанс для подсчета количества посещений страницы пользователем и отображения этого числа. При стандартных настройках сеансов в таком сценарии cookie-файл будет использоваться для передачи информации о сеансе, а также для обнуления при закрытии браузера.

Ниже приведен простой сценарий, в котором используются сеансы для подсчета количества визитов пользователя на страницу.

<?РНР

session_start();

if(isset($_SESSI0N['viewnum'])) {

$_SESSI0N['viewnum']++; } else {

$_SESSION['viewnum' ] = 1;

}

?>

<html> <body>

Здравствуйте!<br>

Вы посещали страницы этого сайта <?= $_SESSION['viewnum'] ?> раэ.<Ьг>

</body>

</html>

Функция session_start () инициализирует сеанс, считывая идентификатор либо из заданного cookie-файла, либо посредством параметра запроса. Сразу после вызова функции session_start () сеанс запрашивает хранилище данных для указанного идентификатора сеанса и восстанавливает все $_SESSION-nepeMeHHbie, установленные в ходе предыдущих запросов. Когда сценарий обращается к $_SESSI0N, переменная маркируется как подлежащая сериализации и сохранению посредством сеансового метода по завершении запроса.

Если требуется сохранить все данные сеанса перед завершением запроса, то запись можно форсировать, используя функцию session_write_close (). Одна из причин использовать эту функцию заключается в том, что встроенные обработчики сеансов обеспечивают блокировку доступа (для сохранения целостности) к данным сеанса. Если использовать сеансы на странице с несколькими фреймами, то пользова-




  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006