【发布时间】:2012-07-08 18:43:58
【问题描述】:
如果用户在 10 分钟内未更改页面,我有此代码会注销用户。
$inactive = 600;
if(isset($_SESSION['timeout']) ) {
$session_life = time() - $_SESSION['timeout'];
if($session_life > $inactive) {
header("Location: logout.php");
}
}
$_SESSION['timeout'] = time();
如您所见,它非常简单。我在所有受保护页面的顶部包含此功能,如果脚本未运行 10 分钟,则下次刷新页面时,用户将被发送到我的注销脚本。
但这就是问题所在。在 $session_life > $inactive 变为 true 后,需要再次运行脚本才能注销用户。一旦这成为现实,我需要该人立即注销。
有什么方法可以做到这一点而不会使事情变得太复杂? (即不使用 AJAX)
【问题讨论】:
-
我不会在所有页面中复制该代码,而是将其包含在包含的头文件中……以防万一您需要更改
$inactive或其他逻辑。尽管就像其他人提到的那样,您可能仍需要将其移至客户端 -
它已经包含在头文件中了。
标签: php session timeout logout