Эта проблема сводила меня с ума. В двух отдельных проектах (оба из которых используют PEAR как библиотеки, но записываются на совершенно разных пользовательских фреймворках) Я использую PEAR Auth для аутентификации, которая использует сеанс.
После входа в систему пользователи выходят из системы в течение часа или около того, когда простаивают. У меня нет точного времени, но это очень коротко.
Я пробовал следующее без успеха. Все попытки продлить сеанс до одного дня, просто для того, чтобы прибить точку домой.
<?php // Tried built-in methods to extend the idle time, called after Auth is initialised $auth->setIdle( 86400 ); // Tried increasing the sesion timeout (before auth is called) ini_set( 'session.gc_maxlifetime', 86400 ); // Tried increasing the cookie timeout (where the phpsession is held, before auth is called) session_set_cookie_params( 86400 ); // Tried all of the above ?>
У кого-нибудь еще была эта проблема? Если да, возможно ли продлить время простоя?
Я просто готов обработать PEAR и написать свой собственный auth-класс на основе файлов cookie, но на самом деле у меня нет времени.
До сих пор я не сталкивался с этой проблемой, но вижу две возможные причины, которые, по-видимому, пока не охвачены:
На одном и том же сервере могут быть другие приложения / сценарии на основе php, использующие один и тот же каталог хранилища сеансов с меньшим тайм-аутом. Согласно документам session.gc_maxlifetime:
Если разные скрипты имеют разные значения session.gc_maxlifetime, но используют одно и то же место для хранения данных сеанса, тогда скрипт с минимальным значением будет очищать данные. В этом случае используйте эту директиву вместе с
session.save_path.