T-mobile 已经使用了这个逻辑,但我不知道该怎么做。
这是场景:我登录我的网站,2 分钟内什么都不做,只是坐着看屏幕。在这种情况下,我应该被重定向到会话将被销毁的注销页面。
我怎样才能做到这一点?
网络上的示例基于用户操作,例如在用户活动之后检查某事(最后一个活动等) 。
注意:我正在使用 Codeigniter 及其数据库会话。
T-mobile 已经使用了这个逻辑,但我不知道该怎么做。
这是场景:我登录我的网站,2 分钟内什么都不做,只是坐着看屏幕。在这种情况下,我应该被重定向到会话将被销毁的注销页面。
我怎样才能做到这一点?
网络上的示例基于用户操作,例如在用户活动之后检查某事(最后一个活动等) 。
注意:我正在使用 Codeigniter 及其数据库会话。
你需要javascript:
<script type="text/javascript">
setTimeout(onUserInactivity, 1000 * 120)
function onUserInactivity() {
window.location.href = "onUserInactivity.php"
}
</script>
这将在 2 分钟不活动后重定向用户。如果你想让它依赖于鼠标移动,请尝试:
<script type="text/javascript">
inactivityTimeout = False
resetTimeout()
function onUserInactivity() {
window.location.href = "onUserInactivity.php"
}
function resetTimeout() {
clearTimeout(inactivityTimeout)
inactivityTimeout = setTimeout(onUserInactivity, 1000 * 120)
}
window.onmousemove = resetTimeout
</script>
所以,在页面加载
$now = mktime();
if($now - $_SESSION['last_activity'] < 120)
{
$_SESSION['last_activity']=mktime();
}else{
logout();
}
自上次活动以来是否已过去 120 秒?注销他们/销毁他们的会话等。
要让页面在空闲后自动注销,您应该使用 javascript。
如果您希望在没有 javascript 且用户没有任何操作的情况下发生这种情况,请将其放在您的所有视图中:
<meta HTTP-EQUIV="REFRESH" content="120; url=http://www.yourdomain.com/logout.php">
它会在页面上 120 秒后将它们重定向到您的注销屏幕。如果他们点击