解决thinkphp设置session周期无效的问题
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']);
原代码:
更改后的代码:
然后在配置项/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的会话方式
),
ok;大功告成;
//***********************************不怎么华丽的分割线**********************************
后来还是不断有亲们的session周期失效;
特贴一份设置正确的项目连接;
bjyadmin:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin
可以尝试下载bjyadmin到本地;
然后在bjyadmin上测试;
如果bjyadmin的session也失效;
那可能是本地环境有问题;
如果bjyadmin的session正常;
而自己的项目session失效;
那就可以确认是自己项目的session配置有错误的地方;
照着bjyadmin抄配置即可;
//***********************************又一个不怎么华丽的分割线******************************
thinkphp官网上最新的3.2.3已经修复此问题;
新开的项目;
直接下载官网最新版本即可;
已经存在的老版本的项目;
可以按本文章处理;
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客http://baijunyao.com
解决thinkphp设置session周期无效的问题的更多相关文章
- 解决body设置height:100%无效问题
1. 解决html设置height:100%无效问题 通常我们需要让自己的网页内容能够更好的适配各种屏幕大小,会采用height:100%,但是我们发现问题出来了,height:100%无效,其实解决 ...
- thinkphp设置session有效时间
thinkphp的框架文件 ThinkPHP/Common/functions.php function session(){ 在这个方法中找到 thinkphp .1版 if(isset($name ...
- 设置height:100%无效的解决方法
设置height:100%无效的解决方法 刚接触网页排版的新手,常出现这种情况:设置table和div的高height="100%"无效,使用CSS来设置height:" ...
- 设置session的生命周期(php)
PHP中,Session变量保存在服务器端(默认以文件格式保存),而Session ID以cookie形式保存在客户端. 销毁session的方法有2种 第一种是通过程序 session_destor ...
- 如何解决设置Session保存在StateServer后引起WebService/WebMethod无法异步获取Session
项目中有一个文件上传功能,需要显示文件上传进度.于是使用PageMethods 调用WebService/WebMethod . 在demo中测试一切正常.但是转移到项目中之后无法异步刷新文件上传进度 ...
- HTML给div设置百分比高度无效的解决方式 - 库塔姆斯 - CSDN博客
原文:HTML给div设置百分比高度无效的解决方式 - 库塔姆斯 - CSDN博客 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/HobHunter ...
- Thinkphp框架下设置session的过期时间
打开项目中的配置文件,添加session的过期配置,如下: 'SESSION_OPTIONS' => array( 'name' => 'BJYSESSION', //设置session名 ...
- thinkphp中session跨域问题
问题描述 <thinkphp实现短信验证注册>中,小编不止记录了短信验证码的实现方法,同时还记录了图片验证码的实现方法. 本地使用,一切正常:后端项目和前端项目都部署到服务器,一切正常:后 ...
- 关于云主机Thinkphp框架Session跨页失效的问题
在网站部署到云主机之后,前台一直能够正常显示,后台确登录不上去,验证码也无法显示,研究半天,才确定是Session跨页传递失效的问题.找网上各种解决方法,都是关于Php.ini文件的设置,可又解决不了 ...
随机推荐
- BitDefender(比特梵德)特惠活动 免费获取9个月激活码
Bitdefender为了庆祝自己获得2014年最佳杀毒软件,送出9个月的Internet security免费激活码.
- L240
Giant rocks from space are falling from the sky more than they used to, but don't worry. For the pas ...
- select into from和insert into from
最近在研究oracle function 时发现select into from和insert into from,这样的语句,于是上网查阅资料学习了一下, 原来两种表达式均可以达到复制整个表或表的一 ...
- linux C 线程池(物不可穷也~)
Linux 多线程编程之 线程池 的原理和一个简单的C实现,提高对多线程编 程的认知,同步处理等操作,以及如何在实际项目中高效的利用多线程开 发. 1. 线程池介绍 为什么需要线程池??? 目前的大 ...
- golang多进程测试代码
package main import ( "fmt" "runtime" ) func test(c chan bool, n int) { x := 0 f ...
- 图片和span水平垂直居中
<style type="text/css"> .content{ width:20%; height:60px; border:1px solid red; text ...
- makefile for opencv
makefile #################################################### # Generic makefile - 万能Makefile # for ...
- LG4768 [NOI2018]归程
题意 题目背景 本题因为一些原因只能评测16组数据. 剩下的四组数据:https://www.luogu.org/problemnew/show/U31655 题目描述 本题的故事发生在魔力之都,在这 ...
- sql server merge into 与update 批量更新1 百万测试数据的性能比较
1. 1百万的测试数据的生成 declare @index int; begin set @index=0; while @index<1000000 begin insert int ...
- XDomainRequest object
The XDomainRequest object has these types of members: Events Methods Properties Events The XDomainRe ...