php thinkphp 设置session的有效时间

thinkphp 设置session的有效时间是根据配置

'SESSION_EXPIRE'        =>  7200,   //有效时间
'SESSION_OPTIONS'=>array(
        'expire'    =>  7200    //有效时间
)

今天在配置的时候发现了一个很大的坑
我明明将上述配置设置成了如上的7200(也就是说session的有效时间是7200秒),但是我通过浏览器对服务器发送request 服务器给我响应的response header中 Set-Cookie 头部信息显示的是max-age=1440,1440是我们php.ini环境配置的时间,也就是说我的7200并没有生效,然后在网上查了大量的资料,有人说是thinkphp3.2本身session机制有问题,然后我又一步一步的读源码,并做断层测试,发现tp3.2 session机制本身并没有问题。而是在C函数读取配置的时候没有将SESSION_EXPIRE的值读出来,我就纳闷儿了。怎么读不出来。然后看了下入口文件的模式,尼玛,老子关闭了调试模式。赶忙将Runtime文件夹删除了,又测试了一次,response header 中Set-Cookie 参数的max-age 终于变成了7200。

以上是告诉大家一个TP框架的经验。

php怎么更改session的有效时间
方法一:直接在配置文件php.ini 中修改session的有效时间

session.gc_maxlifetime = 1440

session.gc_maxlifetime 就是session的有效时间,设置后不仅会在给客户端响应的时候会告诉客户端session的有效时间,本地存储的时候也会设置该session的保存时间,例子里我写的是php默认配置的session有效时间。

方法二:ini_set() 函数设置session的有效时间

ini_set('session.gc_maxlifetime',1440);//设置session的有效时间是1440秒

你可能感兴趣的:(php,thinkphp,session,php)