我有一个PHP会话,我用来管理我的网站管理面板。这使用两个变量来监视会话,lastAction
和user
。最近,在我的网站的一个特定页面上,会话变量user
将完全随机地取消设置,并将用户发送回登录页面,但我似乎无法弄清楚原因。PHP会话变量随机清除
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='';
上什么可能导致此任何想法?
是否有可能sesssion已超过php会话超时设置? –
我不这么认为;这是随机发生的,如果我在登录后直接进入此页面(可能仅在一分钟后),则1/5刷新将会取消设置该变量。 – David