我正在处理一个PHP会话。它运行得很好,除非我退出浏览器然后返回网页,否则会话已经过期。如何防止这种情况/设置会话的过期时间?
您可以更改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
的默认值为1440秒,即大约24分钟。
考虑上述安全风险。为了延长会话寿命,您可以在启动会话之前设置会话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();