У меня есть следующая проблема. Я создаю мобильный сайт PHP + jQuery, и я хочу поддерживать сеанс PHP. Проблема заключается в том, что когда я закрываю приложение для браузера (Samsung Galaxy S4 / S5 или Google Chrome на Android), и я оставляю телефон за десять минут, а затем снова открываю браузер, весь сеанс кажется разрушенным, и у меня есть снова войти в систему.
Я попытался увеличить время существования файла cookie следующим образом:
ini_set('session.cookie_lifetime', 60 * 60 * 24); ini_set('session.gc-maxlifetime', 60 * 60 * 24); session_start();
Но это не решает. Я думаю, это связано с тем, что приложение браузера очищает данные сеанса после некоторого времени бездействия.
Обратите внимание: я не хочу использовать функцию «запомнить меня», просто хочу использовать идентификатор сеанса PHP.
Каким будет правильный способ решить эту проблему? Я посмотрел на локальное хранилище, но кажется странным, что приложение браузера очищает всю сессию, и я ищу простейшее решение.
Вместо того, чтобы пытаться изменить значения ini, попробуйте использовать функцию session_set_cookie_params следующим образом:
session_set_cookie_params(60 * 60 * 24); session_start();
Я исправил его (после большого количества попыток), используя настройку php.ini
session.gc_maxlifetime = 3600
После этого мобильный браузер сохранил сеанс. Даже если я уберу свой телефон на более длительный период.
Очевидно, что установка maxlifetime не работает, если выполняется через скрипт.