我正在尝试编写一个自动logout
脚本,这个脚本似乎可以工作,但不符合我的预期,我不知道我到底做错了什么,我想把timeout.php
放在每个页面上,这样当用户空闲时,它会自动注销并重定向到login
页面,但是当我为我的add用户打开timeout.php
时管理员添加用户的页面,它覆盖了添加用户页面的链接,并放置了一个login
页面,该页面也不会很好地显示出来(即表单正在脱离其位置)
这是timeout.php代码
<?php
$_SESSION = 0;
if($_SESSION['session_count'] == 0) {
$_SESSION['session_count'] = 1;
$_SESSION['session_start_time']=time();
} else {
$_SESSION['session_count'] = $_SESSION['session_count'] + 1;
}
$session_timeout = 10; // (in sec)
$session_duration = time() - $_SESSION['session_start_time'];
if ($session_duration > $session_timeout) {
session_unset();
session_destroy();
session_start();
session_regenerate_id(true);
$_SESSION["expired"] = "yes";
header("Location: login.php"); // Redirect to Login Page
} else {
$_SESSION['session_start_time']=time();
}
?>
我希望它自动注销并将自己重定向到登录页面,并显示一条消息您的会话已过期,我希望它将它放在每个页面上,而不会干扰表单或重叠页面
最佳答案
这可能与问题无关:为什么在if标记中使用$_SESSION["expired"] = "yes";
?如果不使用会话变量,我看不出设置该会话变量的意义。(也许你在别的地方用,我不知道)。
另外,你确定你的重定向是正确的吗?
尝试< cc>
这将帮助您检查重定向是否至少正确。
如果不是这样:请检查是否已将timeout.php链接正确定位在add users页面上。(例如:假设您正在add users页面上使用if else,它应该在if标记中,但您在else标记中使用了它)
关于php - 在php中创建一个自动注销页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16353136/