session_start();
// set timeout period in seconds
$inactive = 600;
// check to see if $_SESSION['timeout'] is set
if(isset($_SESSION['timeout']) ) {
$session_life = time() - $_SESSION['timeout'];
if($session_life > $inactive)
{ session_destroy(); header("Location: logoutpage.php"); }
}
$_SESSION['timeout'] = time();
3条答案
按热度按时间2uluyalo1#
使用会话。例子:
wlsrxk512#
为每个用户添加一个额外的列,并在该列中存储最后一个活动的时间(以时间戳的形式,或任何对您方便的形式)。
如果用户最后一次活动的时间不比现在少一分钟左右,则认为该用户处于活动状态。
你可以玩参数-不需要一分钟。可能是5分钟。
根据您的应用程序,您可以在用户每次打开某个页面时为其更新该列,或者在您的聊天页面上使用一些js脚本,这些脚本将使用ajax或其他技术向服务器发送更新该列的请求—这将表示该特定用户处于活动状态。
vktxenjb3#
您可以设置一个php脚本来验证它们是否仍然通过ajax登录,并让用户的浏览器每隔一段时间发送一次。如果在给定的时间内没有响应,请将其注销。