Это расширение того, что было сказано ранее * ceejayoz .
Позвольте пользователям периодически пинговать службу и сообщать, что они все еще вошли в систему. Сохраните время последнего пинга в сеансе. Если последний сеанс проверки связи превышает указанное время, выполните проверку еще раз, чтобы сообщить, что использование все еще активно.
Сохраните время, когда вы получили пинг в базе данных. Если последний полученный пинг> порогового значения активности активности, то следует учитывать, что пользователь покинул сайт.
Ниже приведен пример непроверенного примера кода, с которого вы начнете. Вы можете использовать «PING__FREQUENCY» для управления частотой, с которой пользовательская активность будет обновлять столбец last_activity.
define(PING_FREQUENCY,300); //5 mins
if (($_SESSION['lastPingTime'] + PING_FREQUENCE) > time()) {
stillLoggedIn(); //execute a function to tell that the user is still logged in
}
function stillLoggedIn() {
//Do SQL update to mark the last activity time for the user
}