导航栏上的链接清除PHP会话

时间:2014-08-11 23:45:42

标签: php session

我有一个奇怪的错误,我不确定如何描述,所以如果这不清楚,请告诉我。

我有一个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
    }
}

如果有任何其他代码与此相关,请告诉我。

0 个答案:

没有答案