переменные php $ _SESSION исчезают и появляются случайно
Предисловие: это «развитие» изпредыдущий вопрос мой, чьи ответы не решили мою проблему в конце концов. Но, попробовав все предложения, а также попробовав другие вещи, я обнаружил, что настоящая проблема - это нечто другое, поэтому я перефразирую свой вопрос здесь
У меня есть страница / система входа в систему, которая работала корректно в течение многих лет, оставляя пользователя в системе, пока он или она не закроет окно браузера или не выйдет из системы вручную. Но в последнее время после нескольких минут бездействия cookie-файлы сеанса, похоже, истекли, и пользователь автоматически вышел из системы.
Это происходит в разных браузерах и в разных операционных системах, версия PHP 5.6.29, которая была недавно изменена (до 5.5 и даже 5.3).
Я создаю и обновляю сессию на каждой страницеsession_start()
, Сценарий входа в систему сначала проверяет имя пользователя и PW, а также получает некоторые другие пользовательские данные из базы данных. Эти другие данные и состояние успешного входа в систему сохраняются в переменных сеанса, таких как
$_SESSION['username'] = $name;
$_SESSION['usertype'] = $type;
$_SESSION['login'] = "ok";
На других страницах я проверяю состояние входа следующим образом:
session_start();
if(($_SESSION['login'] != "ok") OR ($_SESSION['usertype'] != "xxx")) {
header("Location: ../login.php"); /* redirects to login page if conditions are not true */
exit;
}
Вход в систему работает, и вошедшие в систему пользователи могут переходить на другие страницы в течение некоторого времени, но через некоторое время (сильно различаясь), он / она, кажется,вышли из (т.е. перенаправляется на страницу входа при попытке открыть другую страницу).
Затем я заметил (в инструментах разработчика), чтоcookie идентификатора сеанса сохранил то же значение после сеанса, казалось, истек (что я думал, так как переменные сеанса исчезли). Но сеанс не истек, толькопеременные сеанса исчезли, В своих тестах я пытался повторить некоторые из этих переменных на некоторых страницах, и, скорее всего, случайно обнаружил, что после того, как они уже исчезли (без вывода эха), онивновь появился через несколько минут, когда я перезагрузил страницу или перешел на другую страницу.
Вот где я застрял на данный момент: как это может произойти, и особенно: что я могу сделать, чтобы эти переменные не играли в прятки?
(Кстати, у меня нет доступа к настройкам сервера - это в общем веб-пространстве ...)