当用户登录时,他们的在线状态设置为 1,当他们注销时将其设置回 0,我试图做到这一点,以便在网站上闲置一段时间后,他们将被发送到 logout.php,所以我设置了一个字段在我的用户表中作为 last_activity 作为时间戳。并将此代码作为包含在每个页面上。
<?php
if (!isset($_SESSION['last_activity'])) {
// initiate value
$_SESSION['last_activity'] = time();
}
if (time() - $_SESSION['last_activity'] > 500) {
// last activity is longer then certain amount of time
header('Location: logout.php');
} else {
// update last activity timestamp
$_SESSION['last_activity'] = time();
}
?>
但是现在,正如我所拥有的,last_activity 字段仅在用户帐户上的某些内容被更新时才会更新,而且在用户没有注销并且我不知道为什么的一定时间之后。