Изменить срок действия файла cookie PHPSESSID - PullRequest
6 голосов
/ 01 января 2011

Я занимаюсь этим уже целый день, но, похоже, ничего не работает. Что я хочу сделать: изменить время истечения сеанса cookie PHPSESSID, когда установлен определенный флажок, как мне это сделать? Я пробовал:

ini_set ()

session_set_cookie_params ()

SetCookie ()

но ничего не работает. Может кто-нибудь, пожалуйста, помогите мне здесь?

Спасибо

1 Ответ

11 голосов
/ 01 января 2011

Чтобы указать время жизни сеанса на стороне сервера, примените следующую команду

  ini_set('session.gc_maxlifetime', 30*60); // expires in 30 minutes

или установите его в файле php.ini.

Чтобы установить время жизни файла cookie сеанса, клиентская сторона либо оставит его как есть (0 закроется при закрытии браузера), либо

  ini_set('session.cookie_lifetime', 30*60); // 30 minutes

или в php.ini.

Если вы решите использовать ini_set(), обязательно поместите команды до вызова session_start().

Обратите внимание, что функция ini_set устанавливает параметры конфигурации только во время выполнения скрипта .

Относительно флажка и наличия динамической настройки времени жизни сеанса вы можете

  • используйте APC для хранения настроек, общих для всех процессов PHP, которые будут действовать до тех пор, пока сервер PHP не будет работать
  • записать в файл значение, которое вы загружаете в начале скриптов (дорого), и установить значение

(каждый сценарий должен будет ini_set() один раз до session_start())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...