Intereting Posts
<noscript> перенаправление PHP Reflection: как узнать, унаследован ли метод / свойство / константа от свойства? Сортировка несортированного текстового файла и переписывание в тот же текстовый файл в отсортированном порядке PHP почему (null === $ variable), а не ($ variable === null) в сравнении? Исправление Chrome Origin null не разрешено Access-Control-Allow-Origin фильтрация в ng-повторе от ответа JSON Получить размеры для преобразования изображения в максимальное значение Удалите пространство имен форм в форме Symfony2 (для REST API) Как загрузить facebook sdk асинхронный Как использовать графический API Facebook для извлечения фан-фотографий, загруженных на стену страницы поклонников? экспорт csv в zend framework JQuery JSON призывает к PHP WebService всегда запускает обратный вызов «Ошибка» Невозможно выполнить динамическую вставку родитель-ребенка Как найти «близкое слово» в MySQL? Определить проблему в контроллере CodeIgniter

php session заканчивается случайным образом через несколько минут

У меня есть страница / система входа в систему, которая работала корректно в течение многих лет, в результате чего пользователь вошел в систему, пока он или она не закрывает окно браузера или не выходит из системы вручную. Но в последнее время (начиная с вчера) после нескольких минут бездействия сеанс cookie / s, похоже, истекает, в результате чего пользователь автоматически выходит из системы.

Это происходит в разных браузерах и разных операционных системах, версия 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: программное обеспечение вызвало прерывание соединения

(проблема в том, что у меня нет доступа к настройкам сервера – это на общем веб-пространстве …)