如果用户未激活,我希望用户在30分钟后自动注销。
我尝试过以下代码:
Index.php:
<?
if ((time() - $_SESSION['last_activity']) > 1800) // 30* 60 = 1800
{
header("Location: logout.php");
}
?>
login.php:
<?
$_SESSION['unm'] = $row['u_unm'];
$_SESSION['uid'] = $row['u_pwd'];
$_SESSION['status'] = true;
$_SESSION['last_activity'] = time();
?>
我的问题是我不明白这段代码是如何跟踪用户活动的?
我面临的问题是确定用户是否处于活动状态。但我希望用户只有在没有做任何事情时才能退出。
有人能告诉我如何跟踪吗?感谢。
答案 0 :(得分:2)
看起来你只有index.php。尝试修改你的代码:
<?
if ((time() - $_SESSION['last_activity']) > 1800) // 30* 60 = 1800
{
header("Location: logout.php");
} else {
$_SESSION['last_activity'] = time();
}
?>
如果用户在30分钟内完成了某项操作,则只会更新您的会话。
好像你没有使用图书馆,所以你可能需要在你拥有的每个网站上实现这一点。
修改强>
创建一个新文件,可以命名为lifesaver.php
或类似的东西。在此文件中,您粘贴上面的代码。
现在,您将其包含在您拥有的每个页面上,例如:require('lifesaver.php');
这将包含您的文件,并且您的网站上有以上代码。
解释上述代码如何工作:
编辑:基本上会在30分钟或更长时间内重新加载页面,您将自动转到
logout.php
。如果您在30分钟之后重新加载页面,您的时间将会更新(意味着再过30分钟直到自动注销)。每次用户重新加载或使用此脚本转到页面时,都会执行代码。 - Antono