Главная | Контакты | Настройки СМЕНИТЬ ПАЛИТРУ:

Главная > Программирование > PHP
Учебник РНР
Назад Вперёд

XCII. Функции обслуживания сессий

Поддержка сессий в PHP это способ сохранения определённых данных в течение последовательно выполняемых доступов. Это даёт возможность создать более специализированные приложения и увеличить привлекательность вашего web-сайта.

Если вы знакомы с обслуживанием сессий с помощью PHPLIB, вы заметите, что некоторые вопросы аналогичны поддержке сессий в PHP.

Посетителю вашего сайта присваивается уникальный id, так называемый session id. Он хранится в куке на стороне пользователя или вводится в URL.

Поддержка работы с сессиями даёт вам возможность регистрировать произвольное количество переменных и сохранять их в промежутках между выполнениями запросов. Когда пользователь заходит на ваш сайт, PHP будет автоматически (если session.auto_start имеет значение 1) или по вашему запросу (явно - через session_start() или неявно - через session_register()) проверять, выслан ли специфический session id вместе с запросом. Если это так, воссоздаётся предшествующее окружение.

Все зарегистрированные переменные сериализуются после окончания запроса. Зарегистрированные undefined-переменные маркируются как не определённые. При последующих запросах они не определяются модулем сессии, если только пользователь не определить их позднее.

Установки конфигурации session_register(), session_is_registered() и session_unregister().

Если вы включили session_unregister(), поскольку переменные сессии регистрируются как глобальные переменные, когда данные сессии десериализуются. Отключение

Если arg_separator.output php.ini позволяет специализировать разделитель аргументов.

Следующие пример демонстрирует, как зарегистрировать переменную и как корректно связаться с другой страницей, используя SID.
Пример 5. Подсчёт количества входов отдельного пользователя
<?php
if (!session_is_registered('count')) {
    session_register('count');
    $count = 1;
}
else {
    $count++;
}
?>

Hello visitor, you have seen this page <?php echo $count; ?> times.<p>;

<?php
# Тэг <?php echo SID?> (<?=SID?> можно использовать, если включены
# укороченные тэги/short tag) 
# нужна для сохранения session id
# в том случае, если данный пользователь отключил куки
?>

To continue, <A HREF="nextpage.php?<?php echo SID?>">click here</A>

<?=SID?> не нужен, если session_set_save_handler() для создания набора функций хранения уровня пользователя.

Система менеджмента сессий поддерживает несколько опций конфигурации, которые вы можете поместить в ваш файл php.ini. Мы дадим краткий обзор.