У меня есть сайт, работающий на apache и использующий php. Иногда у меня есть пользователи на сайте, которые делают работу, а затем они внезапно теряют свою сессию. Я начинаю сессию сphp session time out неожиданно
session_start()
и он помещает файл cookie PHPSESSID в браузер пользователя. У меня также есть
session.cookie_lifetime=0
в моем файле php.ini. Я также выполняю длительный опрос javascript каждые 5 минут, чтобы узнать, активен ли сеанс.
Вот код PHP, который я использую, чтобы увидеть, если сеанс все еще активен
public function actionPollLogin()
{
if (isset($_SESSION['user']['id']))
{
echo $this->renderAjaxJson(array("success"=>1));
} else {
echo $this->renderAjaxJson(array("success"=>0));
}
}
Если успех == 0, то я вернуть пользователя к публичной части сайта. Но, как я уже сказал, странно, что пользователь может активно использовать сайт, а затем простаивать в течение 20 секунд и выходить из системы. И для тестирования я дам сеанс на экран, чтобы пользователи были возвращены, чтобы подтвердить, что сеанс мертв.
Какие настройки для ввода нужно настроить, чтобы активные пользователи оставаться в системе.
Вот мои текущие настройки php.ini
session.hash_bits_pre_character=5
session.hash_function=0
session.cache_expire=180
session.cache_limiter=nocache
session.referer_check=
session.gc_maxlifetime=1440
session.gc_divisor=1000
session.gc_probability=1
session.serialize_handler=php
session.cookie_httponly=
session.cookie_domain=
session.cookie_path=/
session.cookie_lifetime=0
session.auto_start=0
session.name=PHPSESSID
session.use_only_cookies=1
session.use_cookies=1
session.use_strict_mode=0