2013-12-06 2 views
0

Как только мои пользователи войдут в систему, я создаю для них сеанс PHP и сохраняю идентификатор пользователя в сеансе. Но иногда тайм-аут сеанса пользователя и время на самом деле не предсказуемы, как это происходит в разное время. Пользователь иногда делает что-то на этом сайте, на которое требуется время, прежде чем нажать «Сохранить» в этот момент времени сеанса.PHP Session Keep Alive

У меня есть функция jQuery keepAlive, которая вызывает имя файла keepAlive.php каждые x секунд. Но не знаете, какой код поставить в php-файл, чтобы оживить сеанс php. Есть идеи? Должен ли я просто запустить start_session(), и так?

Благодаря

+1

Да, и определите гиперсегмент $ _SESSION как сам. - $ _SESSION = $ _SESSION; –

+0

Вы уверены, что session_start() вызывается в верхней части каждой страницы? (первая строка) –

ответ

1

Отсутствие предсказуемости связано с вашими настройками для сбора мусора (см http://www.php.net/manual/en/ref.session.php для длинного описания). Но убийство старых сеансов происходит случайным шансом, который затем убивает каждую сессию старше определенного времени.

, чтобы начать сеанс все, что вам нужно, это start_session()

, но если вам нужны вещи длиться дольше, то вы, вероятно, следует изменить php.ini, чтобы продлить как долго она начинается, прежде чем они убиты. (session.gc_maxlifetime)

+0

+1: но пара предостережений - временная метка сеанса (в обработчике по умолчанию) обновляется, когда сеанс закрыт - следовательно, только с session_start код должен заканчиваться чисто. Также возможно * настроить время жизни cookie сеанса на меньшее, чем ошибочно названное gc_maxlifetime, что делает сессию недоступной. – symcbean