Мой файл php.ini установлен для истечения сеансов в течение 24 часов. Но мои пользователи жалуются после выхода из системы через 20 минут или около того.
Я использую session_start в начале каждой страницы. Может ли это быть бесполезным для меня? Или может быть что-то еще, вызывающее это?
Просто понял, что могу быть на общем хостинге. И он может иметь некоторые групповые настройки для сбора мусора с сеансами. Кто-нибудь знает, как смотреть в это или установить мой, чтобы быть более конкретным?
Благодаря!
ini_set('session.gc_maxlifetime',28800); #28800 - just an example time - set your own ini_set('session.gc_probability',1); ini_set('session.gc_divisor',1); session_save_path('/path to your sessions folder'); ob_start(); session_start();
Сначала вам нужно создать папку сеанса. Это действительно работает на общем хостинге GoDaddy. На VPS вы можете использовать это или просто обновить свой файл php.ini.
Проверьте phpinfo()
чтобы узнать, какие настройки действительно существуют. PHP имеет несколько файлов .ini, и его настройки могут быть переопределены в нескольких местах, поэтому ваш сеанс сеанса может не быть фактически действующим. Вывод phpinfo покажет, что такое «Локальные» настройки «это-сейчас-что-в-силе».
Помимо этого, session_start () не будет удалять сам сеанс, но он МОЖЕТ запускать сеанс сбора мусора сеанса на основе нескольких gc_*
.ini. Это вероятностная вещь, однако, и не будет происходить каждый раз, когда вы начинаете сеанс.
Другая возможность заключается в том, что ваши файлы сеансов находятся где-то в системном каталоге temp, а что-то внешнее по отношению к PHP очищает этот каталог с 20-минутными интервалами. Поэтому проверьте, что такое параметр session.save_path
и посмотрите, очищает ли это место.