我尝试注销用户,如果不活动2分钟(仅用于测试2分钟),当我尝试登录时,浏览器会引发“重定向循环错误”。我怎样才能让用户在一段时间不活动后退出,不包括关闭页面然后重新打开它,虽然只需2秒就可以重新登录
更新:
if (isset($_SESSION['timestamp'])) {
$elapsed_time = time() - $_SESSION['start_time'];
if ($elapsed_time >= 60) {
mysql_query("UPDATE `users` SET `status` = '0' WHERE `user_id` = '$session_user_id'");
session_destroy();
header('Location:logout.php');
}
}
$_SESSION['timestamp'] = time();
答案 0 :(得分:0)
您需要测试:
if($_SESSION['logged_in'] && time() - $_SESSION['timestamp'] > 120) {
//your code
}
因为time()
- (未设置的var)将始终为> 120.例如:https://eval.in/99143
编辑添加客户端javascript:
<script type="text/javascript">
setTimeout(function(){
location = 'logout.php'
},60000)
</script>
这将使浏览器在页面上停留60秒后“logout.php”。
答案 1 :(得分:0)
如果您刚发布的代码在index.php中,则time() - $ _SESSION ['timestamp']将始终大于120,因此您的循环。 您可以在PHPINI中更改会话超时
OR
if(isset($_SESSION['timestamp']) {
您的代码
} else {
$_SESSION['timestamp'] = time();
这样你首先要检查是否已经设置了SESSION ['timestamp']