微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

解决thinkphp设置session周期无效的问题

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] 举报,一经查实,本站将立刻删除。

相关推荐