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;大功告成;
//***********************************不怎么华丽的分割线**********************************
后来还是不断有亲们的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周期无效的问题的更多相关文章

  1. 解决body设置height:100%无效问题

    1. 解决html设置height:100%无效问题 通常我们需要让自己的网页内容能够更好的适配各种屏幕大小,会采用height:100%,但是我们发现问题出来了,height:100%无效,其实解决 ...

  2. thinkphp设置session有效时间

    thinkphp的框架文件 ThinkPHP/Common/functions.php function session(){ 在这个方法中找到 thinkphp .1版 if(isset($name ...

  3. 设置height:100%无效的解决方法

    设置height:100%无效的解决方法 刚接触网页排版的新手,常出现这种情况:设置table和div的高height="100%"无效,使用CSS来设置height:" ...

  4. 设置session的生命周期(php)

    PHP中,Session变量保存在服务器端(默认以文件格式保存),而Session ID以cookie形式保存在客户端. 销毁session的方法有2种 第一种是通过程序 session_destor ...

  5. 如何解决设置Session保存在StateServer后引起WebService/WebMethod无法异步获取Session

    项目中有一个文件上传功能,需要显示文件上传进度.于是使用PageMethods 调用WebService/WebMethod . 在demo中测试一切正常.但是转移到项目中之后无法异步刷新文件上传进度 ...

  6. HTML给div设置百分比高度无效的解决方式 - 库塔姆斯 - CSDN博客

    原文:HTML给div设置百分比高度无效的解决方式 - 库塔姆斯 - CSDN博客 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/HobHunter ...

  7. Thinkphp框架下设置session的过期时间

    打开项目中的配置文件,添加session的过期配置,如下: 'SESSION_OPTIONS' => array( 'name' => 'BJYSESSION', //设置session名 ...

  8. thinkphp中session跨域问题

    问题描述 <thinkphp实现短信验证注册>中,小编不止记录了短信验证码的实现方法,同时还记录了图片验证码的实现方法. 本地使用,一切正常:后端项目和前端项目都部署到服务器,一切正常:后 ...

  9. 关于云主机Thinkphp框架Session跨页失效的问题

    在网站部署到云主机之后,前台一直能够正常显示,后台确登录不上去,验证码也无法显示,研究半天,才确定是Session跨页传递失效的问题.找网上各种解决方法,都是关于Php.ini文件的设置,可又解决不了 ...

随机推荐

  1. JVM自动内存管理:对象判定和回收算法

    可回收对象的判断方法 1.引用计数算法 2.可达性分析算法 引用计数算法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1:当引用失效时,计数器值就减1:任何时刻计数器为0的对象就是 ...

  2. java.lang.IllegalStateException: Zip File is closed

    最近在研究利用sax读取excel大文件时,出现了以下的错误: java.lang.IllegalStateException: Zip File is closed at org.apache.po ...

  3. vue-compile概述

    来源 刘涛 Vue的核心可以分为三个大块:数据处理和双向绑定.模板编译.虚拟dom. 前面我们对第一部分的主要内容双向绑定做了一个分析讲解,接下来我们说一说模板编译. 这一部分的内容比较多,也比较复杂 ...

  4. Ubuntu:系统启动服务

    系统启动服务 针对Ubuntu 5级别服务的说明 安装sysv-rc-conf sudo apt-get install sysv-rc-conf acpi-support 高级电源管理支持 acpi ...

  5. UI基础:target...action设计模式,手势识别器.UIimageview

    使用target..action和delegate设计模式可以实现解耦.使代码更加优化. 手势识别器: 手势识别器:是对触摸事件做了封装,无需自己去判断某个手势是否触发,手势识别器本身起到了识别作用, ...

  6. android复制包需要修改的几个地方

    1.要看什么情况,若是在同一个eclipse下,那么就需要修改包名.若不在的话,那就可以不用了. 2.这个app_name也是一样. 3.先说下情况,这是我修改好的.原本这个R的是引之前包的,必须要改 ...

  7. Descriptor&web.xml

    Deployment Descriptor部署描述符: - 部署描述符是要部署到Web容器或EJB容器的Web应用程序或EJB应用程序的配置文件. - 部署描述符应包含EJB应用程序中所有企业bean ...

  8. MySQL--MODIFY COLUMN和ALTER COLUMN

    =================================================== 在修改列时,可以使用ALTER TABLE MODIFY COLUMN  和ALTER TABL ...

  9. GridView实现数据编辑和删除

    <asp:GridView ID="gv_Emplogin" runat="server" AutoGenerateColumns="False ...

  10. 完成分析 FastAdmin 用户余额功能(后台篇)

    分析 FastAdmin 用户余额功能(后台篇) 分析 FastAdmin 用户余额功能(后台篇) 虽然 FastAdmin 主要针对后台的框架,但也在不断完善前台的功能,有一天小伙伴在社区里提了一个 ...