解决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的会话方式

    ),

相关文章

(1)创建数据表: CREATE TABLE IF NOT EXISTS `think_form` ...
组合查询的主体还是采用数组方式查询,只是加入了一些特殊的...
(1)创建模版:/App/Home/View/Form/edit.html   <FORM m...
自定义配置文件user.php: <?php return array(    \'se...
在一些成熟的CMS系统中,后台一般都包含一个配置中心(如织梦...
废话不多说先上图预览下,即本博客的分页; 这个分页类是在...