Сколько живёт сессионная переменная?
Создаю переменную сессии:
session_start();
$_SESSION['text'] = "Text";
Сколько времени она будет жить?
Ответы (3 шт):
Автор решения: Streletz
→ Ссылка
Переменная сессии существует до тех пор пока существует сессия, в которой она создана.
Время жизни сессии можно задать в коде на PHP:
ini_set('session.gc_maxlifetime', 10800); //30 минут
В конфигурационном файле php.ini:
session.gc_maxlifetime = 10800
session.cookie_lifetime = 10800
Или в файле .htaccess:
php_value session.gc_maxlifetime 10800
php_value session.cookie_lifetime 10800
Источник: PHP — работа с сессиями.
Обычно по умолчанию сессия живёт 20 минут (если не ошибаюсь).
Автор решения: Ипатьев
→ Ссылка
Интересный и не такой простой вопрос, как многие думают.
Ответ складывается из двух составляющих:
- времени жизни куки
- времени срабатывания механизма сборки мусора, который удалит файл сессии с сервера
Оба этих пункта настраиваются, но мы сейчас будем говорить о дефолтных настройках.
- время жизни куки по умолчанию - "пока пользователь не закроет браузер". Раньше, когда в браузерах ещё не было вкладок, это имело смысл. Сейчас, когда даже если мы закрываем вкладку, но браузер все равно остается открытым, остаётся жить и сессионная кука. То есть при повторном открытии вкладки с тем же сайтом, сессия будет жива-живехонька.
- сборщик мусора по умолчанию убивает все файлы сессий, которые не обновлялись дольше 1440 секунд, или 24 минуты. Но это тоже не точно, поскольку сборщик мсора запускается не при каждом запросе, а с некоторой вероятностью. И на слобо посещаемом сайте сессия модет жить часами.