php - 在php中创建一个自动注销页面

标签 php session timeout

我正在尝试编写一个自动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/

相关文章:

node.js - Node.js请求超时问题

php - Laravel 5 具有多个变量的 View 编辑器

php $_SESSION 未通过 login.php 文件发送

PHP 表单仅在不为 null 时更新 MySql

java - 尝试运行 alter session 命令通过 JDBC 设置 session 变量

PHP:::速度测试:::$_SESSION:::unset() 与空白字符串

timeout - SQL Server Compact 等待锁超时

sql - 我可以在给定的时间跨度后中止特定的 sql 语句吗?

php - 向数据库插入数据的好方法

php - 在 Vagrant Server 中创建虚拟主机