У меня есть страница/система входа в систему, которая работала правильно в течение многих лет, оставив пользователя вошедшим в систему до тех пор, пока он не закрывает окно браузера или не выходит из системы вручную. Но в последнее время (начиная с вчера) после нескольких минут бездействия сеанс cookie/s, похоже, истекает, в результате чего пользователь автоматически выходит из системы.php session истекает случайно через несколько минут
Это происходит в разных браузерах и разных операционных системах, версия 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;
}
Логина работы, и вошедшие пользователи могут перейти на другие страницы, пока это сделать более или менее постоянной последовательности, но , если кто-то ждет несколько минут перед процедурой (т. без какой-либо активности), он/она вышел из системы (т. е. перенаправляется на страницу входа при попытке открыть другую страницу).
Чтобы сделать это экстра-противный, половину времени он просто работает, как ожидалось, и через полчаса ...
Любая помощь будет очень высоко ценится.
ОБНОВЛЕНИЕ:
Добавление ini_set('session.gc_maxlifetime', 3600');
и `ini_set ('session.cookie_lifetime', 3600); не помогло. Я снова удалил его.
После этого я заглянула в журналах ошибок и нашел это:
ap_pass_brigade завершилась с ошибкой 103: Программное обеспечение вызвало подключение прервать
(проблема, у меня нет доступ к настройкам сервера - это на общем веб-пространстве ...)
Если вы установили новый PHP, а затем проверить 'php.ini' файл. Сеанс сеанса по умолчанию, вероятно, по умолчанию, когда ваша старая система увеличила бы его до более крупного времени. – RiggsFolly