Каково время окончания сеанса по умолчанию в PHP? - PullRequest
2 голосов
/ 20 ноября 2010

У меня есть веб-приложение, которое проверяет базу данных каждую минуту или около того, чтобы проверить наличие новых записей.Страница разработана таким образом, чтобы на самом деле не иметь никакого взаимодействия с ... Вы просто держите ее открытой, и она отображает вещи.Страница защищена паролем, и сайт может быть в течение нескольких дней без каких-либо нажатий в веб-браузере или чем-либо еще.Я обнаружил, что после примерно одного дня он перестает проверять базу данных (через Ajax-запрос), а затем, если вы обновите страницу вручную, вы снова попадете на страницу входа.Я предполагаю, что это потому, что сеанс, который имеет информацию для входа в систему, истекает.Я никогда не устанавливал время истечения, но PHP автоматически уничтожает сессии через определенное время?Что мне сделать, чтобы это исправить?

Спасибо

Спасибо за все ответы ... Есть ли способ установить сессию так, чтобы она никогда не заканчивалась без простого изменения настроек PHP?

Ответы [ 2 ]

7 голосов
/ 20 ноября 2010

Значение по умолчанию session.gc_maxlifetime составляет 1440 секунд.Таким образом, сборщик мусора предполагает, что сеанс истек, если последняя модификация была не менее 1440 секунд назад.

Обратите внимание, что при использовании файла cookie для идентификатора сеанса он может иметь другое время жизни .Значение по умолчанию 0 из session.cookie_lifetime делает cookie-файлом сессионный cookie, то есть срок его действия истекает по окончании сеанса браузера (т. Е. Браузер закрыт).

См. Также мой ответ на Как мне истечь сеанс PHP через 30 минут? для получения дополнительной информации об истечении срока сеанса.

1 голос
/ 20 ноября 2010

с php.ini:

;Время жизни в секундах cookie или, если 0, до перезапуска браузера.;http://php.net/session.cookie-lifetime session.cookie_lifetime = 0

Это будет по умолчанию, если я не ошибаюсь.Либо установите его на ноль (если он еще не установлен), либо просто используйте другой файл cookie.

...