@eLig

PHP Рвется сессия через ~30 минут. Как это исправить?

Здравствуйте!
Не понимаю что нужно сделать чтобы сессия не рвалась при неактивности пользователя в браузере.
Сам проект такой: страница входа по логину и паролю дает доступ к системе, где имеются различные вкладки с информацией. Данные при клике по вкладке грузятся ajax (post).
Сам скрипт сессии не большой (с сессиями работаю впервые, так что сделал так как нашел в примерах), и вызывается в каждом файле, для ее продления.
$cook = 0;
$ses = 7200;
ini_set('session.save_path', str_replace('public_html','',$_SERVER['DOCUMENT_ROOT']).'/ses');
ini_set('session.gc_maxlifetime', $ses);
ini_set('session.cookie_lifetime', $cook);
session_start();

Сессию храню в отдельном файле, по истечению 30 минут файл сессии присутствует в папке. Но если перейти на другую вкладку проекта, то выкидывает на страницу авторизации. 7200 - время жизни 2 часа.
  • Вопрос задан
  • 600 просмотров
Пригласить эксперта
Ответы на вопрос 3
Stalker_RED
@Stalker_RED
Но если перейти на другую вкладку проекта...

А в этой "другой вкладке" тоже везде вписано ini_set('session.gc_maxlifetime', 7200);?

Вообще это неплохо бы в php.ini вписать, потому что php.net/manual/ru/session.configuration.php#ini.se...
Ответ написан
proudmore
@proudmore
Сталкивался както. В дебианах все сессии убиваются раз в какое-то время.

https://stackoverflow.com/questions/3865303/debian...
Ответ написан
Комментировать
@synapse_people
session.gc_maxlifetime

This value (default 1440 seconds) defines how long an unused PHP session will be kept alive. For example: A user logs in, browses through your application or web site, for hours, for days. No problem. As long as the time between his clicks never exceed 1440 seconds. It's a timeout value.

PHP's session garbage collector runs with a probability defined by session.gc_probability divided by session.gc_divisor. By default this is 1/100, which means that above timeout value is checked with a probability of 1 in 100.
session.cookie_lifetime

This value (default 0, which means until the browser's next restart) defines how long (in seconds) a session cookie will live. Sounds similar to session.gc_maxlifetime, but it's a completely different approach. This value indirectly defines the "absolute" maximum lifetime of a session, whether the user is active or not. If this value is set to 60, every session ends after an hour.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы