Расширенные сеансы Пользовательское управление сеансами
Posted in: Передача идентификатора сеанса, By: admin, At: Январь 15th, 2008
Разобравшись с основами использования сеансов, давайте внимательно изучим их внутреннее устройство. По умолчанию РНР предлагает три внутренних метода хранения данных сеанса, указываемые в session.save_handler: внутренний формат файла PHP-сеанса {определенный php). внутри базы данных SQLite (определенный sqlite) и формат пакета WDDX (определенный wddx).
НА ЗАМЕТКУ |-
Поддержка сеансов WDDX требует, чтобы поддержка WDDX была скомпилирована в РНР. Точно так же, для использования сеансов SQLite, должно быть доступно расширение SQLite.
Если говорить об управлении сеансами, то, возможно, это не самая сильная сторона РНР. В РНР имеются средства, которые позволяют разработчику полностью настроить управление сеансами, создав собственные PHP-функции для сохранения и восстановления данных сеанса. Для пользовательского обработчика сеансов необходимо определить шесть отдельных функций:
1. Запуск (открытие) сеанса.
2. Чтение любых сохраненных данных сеанса.
3. Сохранение данных текущего сеанса.
4. Завершение (закрытие) сеанса.
5. Очищает хранилище от неиспользуемых или некорректных данных сеанса.
6. Уничтожение сеанса.
Каждая из шести функций принимает специфические параметры и возвращает определенные значения, описанные ниже.
1. Функция открытия — принимает два параметра $save_path (путь для записи любого связанного с сеансом файла) и Ssession_name (имя текущего сеанса). Оба параметра берутся из конфигурационных директив session, savejpath и session,name, соответственно. Эта функция возвращает булевское значение, показывающее, успешно ли инициализирован сеанс.
2. Функция чтения — принимает один параметр $id (идентификатор текущего сеанса) и должна возвращать данные сеанса или пустую строку, если данные отсутствуют.
3. Функция записи — принимает два параметра, Sid {идентификатор текущего сеанса) и $sess data (сериал изо ванные данные сеанса). Эта функция возвращает булевское значение, показывающее, успешно лп выполнено сохранение данных.
Leave a Reply