没有用户操作后自动重定向

时间:2013-04-12 08:36:28

标签: php redirect codeigniter-2

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

这是一个场景:我登录我的网站并且根本不做任何事情2分钟,只需坐下来看屏幕。在这种情况下,我应该被重定向到注销页面,会话将被销毁。

我该怎么做?

网络上的示例基于用户操作,例如检查某些内容(上次活动等)用户活动

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

2 个答案:

答案 0 :(得分:4)

你需要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>

答案 1 :(得分: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秒后将它们重定向到您的注销屏幕。如果他们点击那么