当浏览器退出时,保持php会话不会过期

时间:2012-01-28 23:09:01

标签: php session

我正在使用PHP会话。它工作得很好,除非我退出浏览器然后返回网页,会话已经过期。如何防止此操作/设置会话的到期时间?

2 个答案:

答案 0 :(得分:2)

您可以更改session.cookie_lifetime的配置,以便浏览器不会在关闭时将会话的cookie丢弃(您只需给它几秒钟,然后设置到期日期)......

// assuming you can't change your php.ini file
ini_set('session.cookie_lifetime', 3600); // one hour

...但是您希望会话保持多久可行?因为您需要担心的另一个配置设置是session.gc_maxlifetime,它会设置(再次,以秒为单位)会话数据在被认为是垃圾之前允许存在多长时间(我相信?)。

session.gc_maxlifetime的默认值为1,440秒,或大约24分钟。

答案 1 :(得分:1)

考虑提到的安全风险。延长会话寿命, 您可以在开始会话之前设置会话cookie的生命周期,如下所示。

                     $lifetime=60*60*24*14;   //2 weeks in seconds. you can change the time as you wish
                     session_set_cookie_params($lifetime, '/');
                     session_start();