我有一个奇怪的错误,我不确定如何描述,所以如果这不清楚,请告诉我。
我有一个PHP站点,使用$ _SESSION变量进行身份验证检查。
流程:
登录页面 - >索引页面 - >任何页面/链接不在导航栏上,工作正常
然而
登录页面 - >索引页面 - >点击导航栏上的链接 - > $ _SESSION [" id"]清除并重定向到登录
然后,它工作正常。我可以正常使用导航栏链接,没有任何问题。
这是在多个浏览器(safari,chrome,firefox)上复制的。我已经尝试直接设置session_save_path,并且在代码中的任何地方都没有调用session_destroy进行测试。
这是config.php,它包含在需要身份验证的每个页面的顶部:
if (session_status() == PHP_SESSION_NONE)
{
session_start();
session_save_path("/home2/demundoi/tmp");
session_regenerate_id();
}
// require authentication for most pages
if (!preg_match("{(?:login|logout|register_form)\.php$}", $_SERVER["PHP_SELF"]))
{
if (isset($_SESSION["id"]))
{
}
else
{
//store what page user was trying to load
$_SESSION["url"] = 'http'.(empty($_SERVER['HTTPS'])?'':'s').'://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
redirect("login.php"); //parses relative or absolute path and outputs to html header
}
}
如果有任何其他代码与此相关,请告诉我。