php session不生效_Thinkphp 对session有效期的设置为什么总不起作用?

在使用ThinkPHP开发项目时,遇到session有效期设置无效的问题,导致用户关闭浏览器后立即退出。通过在`/Thinkphp/Common/function.php`文件的1213行修改代码,并在配置文件`Application/Common/conf/config.php`中添加SESSION设置,成功解决了session不保留登录状态的bug。具体修改包括设置`session.gc_maxlifetime`和`session.cookie_lifetime`,以及配置SESSION保存时间为15天。
摘要由CSDN通过智能技术生成

thinkphp的session设置周期是无效的;

直接的影响就是无法保留用户的登陆状态;

用thinkphp开发的项目;

关闭浏览器后用户就退出了;

即便设置了session周期也没作用;

这个bug存在很久了;

但是thinkphp官网一直没处理更新;

吐槽完毕;下面来解决这个bug;

首先需要在 /Thinkphp/Common/funtion.php 公告函数的第1213行添加如下内容;

如果不是在1213行;就搜索gc_maxlifetime

// 1213行原代码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']);PHP

原代码:

 

更改后的代码:

 

然后在配置项/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的会话方式

),PHP

ok;大功告成;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值