thinkPHP的session设置周期是无效的,直接的影响就是无法保留用户的登陆状态,用thinkPHP开发的项目,关闭浏览器后用户就退出了,即便设置了session周期也没作用,这个bug存在很久了,但是thinkPHP官网一直没处理更新。
吐槽完毕,下面来解决这个bug:
首先需要修改/ThinkPHP/Common/funtion.PHP公告函数,位于第1213行,如果不是在1213行,就搜索gc_maxlifetime
if(isset($name['expire'])) ini_set('session.gc_maxlifetime',$name['expire']);
修改为:
if(isset($name['expire'])) ini_set('session.gc_maxlifetime',$name['expire']);ini_set('session.cookie_lifetime',$name['expire']);
然后在配置项/Application/Common/conf/config.PHP中添加如下代码:
//***********************************SESSION设置**********************************
'SESSION_OPTIONS' => array(
'name' => 'BJYSESSION', //设置session名
'expire' => 24*3600*15, //SESSION保存15天
'use_trans_sid' => 1, //跨页传递
'use_only_cookies' => 0, //是否只开启基于cookies的session的会话方式
),
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。