Сколько живёт сессионная переменная?

Создаю переменную сессии:

session_start();

$_SESSION['text'] = "Text";

Сколько времени она будет жить?


Ответы (3 шт):

Автор решения: Paul Wall

Смотри значение в php.ini session.gc_maxlifetime

→ Ссылка
Автор решения: 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 минуты. Но это тоже не точно, поскольку сборщик мсора запускается не при каждом запросе, а с некоторой вероятностью. И на слобо посещаемом сайте сессия модет жить часами.
→ Ссылка