2015-12-13 2 views
6

Это, вероятно, довольно простой вопрос. Я нашел десятки подобных, спрашивая, как вообще сократить или продлить время жизни сеанса в PHP. Я знаю, как добиться того, что мой PHP скрипт читает так:PHP: Сброс продолжительности сеанса при перезагрузке

ini_set('session.gc_maxlifetime', 3600); 
session_set_cookie_params(3600); 
session_start(); 

Это устанавливает мои сеансы тайм-аут после 3600 секунд. И это в основном то, что происходит, когда я начинаю открывать веб-сайт, где мне нужно войти в систему, я могу работать с ним ровно на один час, тогда все данные сеанса удаляются, и мне нужно снова войти в систему.

Однако это не то поведение, которое я ожидаю. Я хочу, чтобы мои сессии отключились через один час бездействия. Поэтому, когда я впервые открываю свой сайт в 10:00, сделаю что-то до 10:45, тогда он должен тайм-аут в 11:45, а не в 11:00, как сейчас.

Любые предложения, как достичь этого?

+0

Ну, вам также нужно использовать сеансы для этой задачи. Вы можете просто обновить файл cookie на pageload в своем шаблоне. Если последняя pageload старше 3600, вы уничтожите сеанс. Но, как вы видите, это имеет свои недостатки (нужно выполнять каждый раз) –

ответ

8

Используйте вместо session_set_cookie_params ->setcookie

вместо

session_set_cookie_params(3600); 
session_start(); 

использования этого и называют его на каждой странице вашего сайта

$lifetime=3600; 
session_start(); 
setcookie(session_name(),session_id(),time()+$lifetime); 

она обновит сессионный срок годности печенья на каждом исполнение до time()+$lifetime дата

+2

Спасибо, работал как шарм! – user3205494