Исключение переменных сеанса

Я нахожу, что переменные сеанса исчезают примерно через 30 – 90 минут. Я проверяю, что сеанс был запущен обычным способом, прежде чем извлекать переменную сеанса:

function chkSsn() { if (session_status() == PHP_SESSION_NONE) session_start(); } 

Я устанавливаю переменные сеанса следующим образом:

 function setSsnVar($nm, $vlu) { chkSsn(); $_SESSION[$nm] = $vlu; } 

И получить их следующим образом:

 function ssnVar($nm) { chkSsn(); if (array_key_exists($nm, $_SESSION)) return $_SESSION[$nm]; else return ""; } 

Я попытался добавить следующие строки сразу после «session_start», но это не имело никакого значения:

 header("Cache-Control: no-cache"); header("Pragma: no-cache"); 

Я использую Firefox 48, Apache / 2.4.7 (Ubuntu) и PHP версии 5.5.9-1ubuntu4.19.

Данные сеанса могут быть синхронизированы в клиентском браузере или на сервере из-за настроек в php.ini. Стандартными настройками являются session.cookie_lifetime и session.gc_maxlifetime . Фактически, есть дополнительные важные настройки, которые управляют временем жизни сеанса, поэтому я настоятельно рекомендовал эту статью .

Поэтому создайте простую php-страницу, которая вызывает функцию phpinfo() PHP Manual – phpinfo, и выведет ваши настройки php. Вы должны решить эту проблему.