Объединенный Открытый Проект - Сайт для Настоящих Компьютерщиков

Объединенный Открытый Проект

Сайт для Настоящих Компьютерщиков

; Логин:
  Пароль:
Обычный
Безопасный
Запомнить пользователя



Зарегистрироваться
Забыли пароль?
 
 
 
Объединенный Открытый Проект »   Программирование »   PHP »   Время окончания сессии
RSS

Время окончания сессии

Текущий рейтинг темы: Нет

<<Назад  Вперед>>Модератор: wsxПечать
 
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик

Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Вопрос такой: как задать явно время окончания сессии в PHP? (Или, если сформулировать иначе, как сделать, чтобы сессия кончалась не с закрытием броузера, а в заданный момент времени.)
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик

Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Как выяснилось, это можно сделать с помощью функции session_set_cookie_params, где время окончания сессии задается в первом параметре. По идее, там надо задавать количество секунд, которое должна длиться сессия, но в MSIE 6 имеется баг, из-за которого в таком формате cookies не ставятся. Поэтому лучше делать так:


session_set_cookie_params(date("r",time()+180*24*60*60));

А если вдруг сессию потребуется закрыть раньше, то придется ставить пустой cookie с ее именем вручную.
Правда, один вопрос остается непонятным: не будет ли удален файл сессии на сервере...
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик

Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Тут выяснился еще один неприятный момент: некоторые хостинги производят автоматическое удаление файлов сессий через определенное время. Поэтому если сессию требуется запомнить на долгое вермя, то приходится поступать так:

setcookie("sid_long",serialize($_SESSION),time()+180*24*60*60);

А потом считывать ее:

session_start();

if ($_COOKIE['sid_long']) $_SESSION=unserialize(stripslashes($_COOKIE['sid_long']));

<<Назад  Вперед>>Модератор: wsxПечать
Объединенный Открытый Проект »   Программирование »   PHP »   Время окончания сессии
RSS
Быстрый переход в раздел:


Время выполнения скрипта: 0.0157. Количество выполненных запросов: 18, время выполнения запросов 0.0037