Как увеличить время жизни сессии в PHP

При использовании сессий в PHP по умолчанию идентификатор сессии сохраняется в «куках» - небольших блоков информации, которые хранятся на стороне клиента и имеет заданное время жизни. PHP, как правило, хранит данные сессии в файлах. Для того, чтобы не зас

Как увеличить время жизни сессии в PHP

» » Сообщение:

При использовании сессий в PHP по умолчанию идентификатор сессии сохраняется в «куках» - небольших блоков информации, которые хранятся на стороне клиента и имеет заданное время жизни. (в PHP куки доступны при помощи глобального массива $_COOKIES).
Название идентификатора сессии - «PHPSESSID», но его можно изменить при помощи параметра session.name в файле php.ini.

Время жизни куки, которая хранит идентификатор сессии по умолчанию составляет 0 сек, т.е. кука хранится до того момента, как браузер будет закрыт. Это можно изменить при помощи параметра session.cookie_lifetime в файле php.ini.

PHP, как правило, хранит данные сессии в файлах. Для того, чтобы не засорять файловую систему периодически осуществляется очистка устаревших данных, garbage collection - уборка мусора. В файле php.ini существует параметр session.gc_maxlifetime который указывает время в секундах, по истечению которого все устаревшие данные будут удалены из файловой системы.

Допустим, мы хотим задать время жизни сессии - 3 часа.
Для этого в файле php.ini устанавливаем следующие параметры:

Код: Выделить всё Развернуть
session.gc_maxlifetime = 10800
session.cookie_lifetime = 10800

Если у вас нет возможности внести изменения в файл php.ini, то можно сделать установку этих параметров при помощи файла .htaccess.
Для этого вносим в него следующие строки:

Код: Выделить всё Развернуть
php_value session.gc_maxlifetime 10800
php_value session.cookie_lifetime 10800

Если ваш хостер запрещает вам использовать директиву php_value в файле .htaccess или использовать .htaccess в целом - то пора менять хостера.

Кроме того, вы можете установить время жизни сессионной куки из PHP при помощи функции session_set_cookie_params.
К примеру:

Код: Выделить всё Развернуть
<?php
session_set_cookie_params(10800);
?>

При этом нужно учитывать, что функциция set_cookie_params должна быть вызвана до того, как сессия будет открыта при помощи session_start.
Функция set_cookie_params также позволяет установить путь, домен, настройки безопасности для сессионной куки.

© loco.ru

session, gc_maxlifetime, php.ini, php_value, htaccess, phpsessid, garbage, collection



Похожие темыКомментарии ПросмотрыПоследнее сообщение
0182Неделя из жизни женского желудка
Сообщение от: Admin
0336Истек период сессии. Обновить/продл...
Сообщение от: Admin
0187Коктейль из жизни..
Сообщение от: Admin
016932 дня из жизни сисадмина
Сообщение от: Admin
0392Переменные сессии без cookies. sess...
Сообщение от: Admin