PHP会话cookie生命周期停留在0

时间:2017-05-25 14:42:16

标签: php session cookies

我有一个看起来像这样的登录功能......

function sec_session_start() {
        if(!isset($_SESSION)) { 
            session_start();           
            session_regenerate_id();    
        }

        $session_name = 'sec_session_id';   
        $secure = SECURE;
        $httponly = false;
        if (ini_set('session.use_only_cookies', 1) === FALSE) {
            echo 'unsafeSession';
            exit();
        }
        $cookieParams = session_get_cookie_params();
        //session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], $secure, $httponly);
        session_set_cookie_params(315360000, $cookieParams["path"], $cookieParams["domain"], $secure, $httponly);
        session_name($session_name);
}

其中session_set_cookie_params函数包含315360000(10年以秒为单位)作为它的第一个参数,并且应该定义cookie生存期。

我最近将它从“$ cookieParams [”lifetime“]”(你可以看到它上面注释掉)更改为315360000,因为用户定期退出应用程序并且以下代码只返回0 ...

$cookie_params = session_get_cookie_params();
echo $cookie_params['lifetime'];

令人困惑的是,我认为0意味着应用程序/浏览器关闭时你应该注销 - 但这并没有发生。现在我已经用315360000替换了,我几乎看到了在一段时间不活动之后会话结束的完全相同的行为(并且上面的测试代码仍然返回0)。

我是否遗漏了可能导致此行为的其他注意事项?例如。我的机器/浏览器的特点(即使我与其他网站没有类似的问题)?或者这应该可以在代码中轻松定义?在这种情况下,也许我在那里遗漏了一些东西!谢谢你的帮助。

0 个答案:

没有答案