Я использую этот код, чтобы закончить сеанс после 10 секунд бездействия:Уничтожая сеанс PHP
ini_set('session.gc_maxlifetime', 10);
session_start();
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 10)) {
session_unset();
session_destroy();
}
$_SESSION['LAST_ACTIVITY'] = time();
Это работает только тогда, когда я обновить страницу после 10 секунд бездействия. Если я не обновляю страницу или не закрываю браузер, сеанс никогда не будет уничтожен. Может ли кто-нибудь помочь мне, как это исправить?
Вам нужно будет подать запрос AJAX каждые 10 секунд, чтобы проверить это. – fire
каждые 8 часов. Вы можете опоздать на время сеанса обновления. –
@fire Вам нужно будет установить тайм-аут после каждого действия (активности) в javascript, очистить его, когда пользователь что-то сделает, и только запустить запрос ajax, когда таймер закончится, и вы хотите уничтожить сеанс. – jeroen