解决thinkphp设置session周期无效的问题ThinkPHP教程
thinkphp的session设置周期是无效的,直接的影响就是无法保留用户的登陆状态,用thinkphp开发的项目,关闭浏览器后用户就退出了,即便设置了session周期也没作用,这个bug存在很久了,但是thinkphp官网一直没处理更...
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的会话方式
),
吐槽完毕,下面来解决这个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的会话方式
),
最新评论
热门推荐
我要评论