-2

T-mobile 已经使用了这个逻辑,但我不知道该怎么做。

这是场景:我登录我的网站,2 分钟内什么都不做,只是坐着看屏幕。在这种情况下,我应该被重定向到会话将被销毁的注销页面。

我怎样才能做到这一点?

网络上的示例基于用户操作,例如在用户活动之后检查某事(最后一个活动等) 。

注意:我正在使用 Codeigniter 及其数据库会话。

4

2 回答 2

3

你需要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>
于 2013-04-12T08:40:19.127 回答
1

所以,在页面加载

$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 秒后将它们重定向到您的注销屏幕。如果他们点击

于 2013-04-12T08:41:18.860 回答