Я хочу, чтобы мои пользователи вышлись из системы автоматически после X минут неактивности. Я также хочу иметь все уничтоженные сессии.
Как это может быть сделано? Как я могу проверить на неактивность, затем выполняют функцию для входа их???
Вы также можете сделать:
$_SESSION['loginTime'] = time();
На каждой странице, когда пользователь пытается перейти и неактивен в течение двадцати минут, вы можете вывести его из системы следующим образом:
if($_SESSION['loginTime'] < time()+20*60){ logout(); }
Механизм сессий PHP уже имеет сборщик мусора, основанный на таймауте бездействия. Вам не о чем беспокоиться.
Вы можете установить предел времени ожидания сеанса, например:
ini_set('session.gc_maxlifetime',30);
Используйте unset ($ _ SESSION ['NAME']);
или session_destroy ();
. Вы также можете изменить значение сеанса.
Чтобы сделать это в определенное время, вам нужно будет установить метку времени в базе данных, а затем вызвать ее, чтобы проверить, не превышает ли она X минут. Посмотрите ссылку внизу.
Лично я просто использую куки и заставляю их истекать в определенное время, но независимо от того, что плавает ваша лодка.
Если текущее время более чем на 30 секунд превышает время X (из базы данных)
В зависимости от того, насколько быстрым является ваш сервер и сколько у вас пользователей, вы можете настроить отправку запроса на ваш сервер всякий раз, когда пользователь что-либо делает (перемещается, нажимает кнопку и т. Д.). Из этого запроса обновите таблицу SQL, указав время их последней активности.
Выполните задание cron через таблицу через некоторый регулярный интервал и удалите сеансы пользователей, которые были неактивны в течение любого установленного вами порогового значения.
Если ваш сервер работает медленно или у вас много пользователей, вы можете запускать этот скрипт нечасто.