Есть ли возможность уничтожить сеанс, если пользователь не выполнил никаких действий за 10 минут?
session_start(); // 10 mins in seconds $inactive = 600; $session_life = time() - $_session['timeout']; if($session_life > $inactive) { session_destroy(); header("Location: logoutpage.php"); } S_session['timeout']=time();
Вышеприведенный код был взят с этой страницы.
Попробуйте установить время ожидания сеанса до 10 минут.
ini_set('session.gc_maxlifetime',10);
я изменил ответ выше, и он отлично работает:
// inactive in seconds $inactive = 10; if( !isset($_SESSION['timeout']) ) $_SESSION['timeout'] = time() + $inactive; $session_life = time() - $_SESSION['timeout']; if($session_life > $inactive) { session_destroy(); header("Location:index.php"); } $_SESSION['timeout']=time();
сравнить временные метки между двумя запросами, один из текущего запроса, один из которых хранится в сеансе.