我有一个 PHP 会话,我用它来管理我的网站的管理面板。这使用两个变量来监视会话,lastAction
并且user
. 最近,在我网站的一个特定页面上,会话变量user
将随机完全取消设置并将用户发送回登录页面,但我似乎无法弄清楚为什么。
session_start();
$fn = "timeout.txt";
$fh = fopen($fn,'r');
$to = fread($fh,filesize($fn));
if(abs(time()-$_SESSION["lastAction"]) > $to)
{
session_unset();
die("Timeout");
}
var_dump($_SESSION);
//Set timeout back to 0
$_SESSION["lastAction"] = time();
if($_SESSION["user"] != "...")
{
die("Invalid User");
header("Location:/login");
}
我从来没有收到超时错误,只有无效用户错误。
有时,当我转储会话变量时,我会得到两个值的数组,lastAction
和user
,但是,只需在几秒钟后重新加载页面,user
就会取消设置,但lastAction
不会。
此外,在这种情况下,我正在通过 javascript 重新加载页面:parent.location='';
关于可能导致这种情况的任何想法?