我已经出现过两次这种问题了,出现了两次就说明第一次没有解决彻底,所以表示thinkphp这个跨页后session为空而无法登陆的问题牵扯很多方面的问题了。经过这两次的研究,我觉得基本上能真正解决它了。

第一次出现的时候,我以为是目录不可写,检查了半天没发现问题,于是各种百度,才发现别人也有遇得类似问题,就是跨页传递session为空。(温馨提示:不喜欢听流水账的可以略过以下两段,直接看下面的解决措施。)我调试了一下程序,将登陆跳转后的页面print_r($_SESSION),果然为空值。最后查找资料说是要把 use_trans_sid 的值改为 1,于是在配置文件中加了一行:'SESSION_OPTIONS' => array('use_trans_sid'=>1),然后再登陆的时候就好了。

第二次,换到另一个环境的时候又出现问题了,于是我又到网上查资料,很可惜,这次找了半天都没有解决,瞬间感慨国内编程这一块的资源匮乏程度还是挺严重的啊,所以我只有自己摸索了。首先排除目录权限和其他一系列问题后,我意识到这次的问题应该也是php设置的问题。于是我把本地的phpinfo和出问题那台虚拟空间的phpinfo输出来,一行一行比较session那块选项。最后我发现有一行配置不一样,如下图:

这里的session.use_only_cookies的值是on,也就是1,而我本地的是off。我马上意识到是这里的问题了,于是又在配置文件中加了一个参数 'SESSION_OPTIONS' => array('use_trans_sid'=>1,'use_only_cookies'=>0),同时还要在thinkphp/Common/functions.php的550行左右加上一句if(isset($name['use_only_cookies']))  ini_set('session.use_only_cookies', $name['use_only_cookies']?1:0); 因为thinkphp默认没有定义这个选项。瞬间,又能登陆了。

经过这两次的问题,最后,代潇瑞博客总结出一下几点导致不能正常登陆、session传值为空的原因:

1. 首先检查存放session的目录是否可写。

2. 如果您用的是空间的话,有些空间文件数目上线也有限制,比如一个200MB的空间,空间单个文件数不能超过45000,当文件满后,就不能在写入文件了,如果你session路径设置在web目录下,也就会影响session无法写入了。

3. 就是将“use_trans_sid”的值设为1,可以在配置文件中加入“SESSION_OPTIONS' => array('use_trans_sid'=>1)”这行代码,让session可以跨页传值。

4. 这个是最不容易发现的,我找了好半天,网上也没有提到这个。也是session的设置选项问题,在第3点的基础上加一个“'use_only_cookies'=>0”选项,即:“SESSION_OPTIONS' => array('use_only_cookies'=>0,'use_trans_sid'=>1)”,同时还要在thinkphp/Common/functions.php的550行左右加上一句if(isset($name['use_only_cookies']))  ini_set('session.use_only_cookies', $name['use_only_cookies']?1:0); 因为thinkphp默认没有定义这个选项。

不能正常登陆、session传值为空的问题大概就是这几个因素了,如果还有其他原因,我会再次的补充完善。如果您有什么不清楚的,也欢迎与代潇瑞博客交流。

文章出自:http://www.daixiaorui.com/read/99.html

转载于:https://www.cnblogs.com/lizhenli/p/6655980.html

thinkphp无法登陆,session跨页后值为空相关推荐

  1. php session 为空,thinkphp无法登陆,session跨页后值为空

    我已经出现过两次这种问题了,出现了两次就说明第一次没有解决彻底,所以表示thinkphp这个跨页后session为空而无法登陆的问题牵扯很多方面的问题了.经过这两次的研究,我觉得基本上能真正解决它了. ...

  2. think php框架 跨域,ThinkPHP框架实现session跨域问题

    这篇文章主要介绍了ThinkPHP框架实现session跨域问题的解决方法,需要的朋友可以参考下 ThinkPHP的session跨域问题很多开发者都遇到过! 其实不管是ThinkPHP还是php本身 ...

  3. ajax getsession getattribute空,session.getAttribute()得到的值为空解决方法

    session.getAttribute()得到的值为空 我是一个java小手,请大手们指点一下我在练习写Jsp的时候遇到的这个问题:我在login.jsp这个页面先用表单吧参数传给自身,然后写了se ...

  4. php session 跨页失效问题

    原因是session.savepath 目录不存在或者没有读写权限 转载于:https://www.cnblogs.com/zenghansen/p/4863451.html

  5. oracle null 关联,oracle关联查询在ps/sql中正常,但是在C#中fill后值为空

    SQL代码如下 with t1 as( select b.is_import,b.active_flag,b.last_upd,b.row_id,b.dsig_date,b.vicont_code,b ...

  6. 【问题处理】Word表格跨页重复显示标题行失败问题解决

    一.问题: 表格跨页显示,需要跨页后能够重复显示标题行,但是遇到了问题:选中表格,勾选跨页显示标题行,修改后表格整个都显示到下一页去了: 1.原表格如下图: 2.修改: 3.修改后: 二.解决: 选择 ...

  7. Word里表格跨页时自动断开,表格后留有空白部分,未布满整页,如何操作让表格上下页均匀布满?

    Word里表格跨页时自动断开,表格后留有空白部分,未布满整页,如何操作让表格上下页均匀布满? 目录 Word里表格跨页时自动断开,表格后留有空白部分,未布满整页,如何操作让表格上下页均匀布满? 1.像 ...

  8. 解决给word中表格设置“跨页断行”后出现大片空白

    解决给word中表格设置"跨页断行"后出现大片空白 在写文档时出现了如下难堪情景,那个字他就是不到下一页去,它不想分开,就硬给它分开. 解决办法:在表格处右击,"表格属性 ...

  9. excel单元格合并后跨页出现的边框问题?

    excel单元格合并后跨页出现的边框问题? 2011-03-20 如何解决单元格合并后跨页出现的边框问题? 单元格合并后,跨页的地方出现下边框没有的问题,一个一个调整太慢了,有什么好方法? 通常来说, ...

最新文章

  1. UML类图、接口、包、关系
  2. The 2018 ACM-ICPC Asia Qingdao Regional Contest
  3. Spring管理事务的若干配置形式
  4. 用js控制选择CheckBoxList
  5. oracle服务器找不到怎么解决,简析Oracle数据库常见问题及解决方案
  6. Django入门 -- 框架操作基本流程
  7. 下列服务使用的默认端口:ftp,ssh,telnet,dhcp,mail,pop3,smtp,dns,http,sm
  8. 向mysql中插入时间_Java向mysql中插入时间的方法
  9. 孟菲斯风格海报设计素材,艺术一点点
  10. 预习 Delphi 2009 中的新功能 - JSON (二) : 如何在 Delphi 中使用 json
  11. matlab教程 当当,MATLAB实用教程(第4版)
  12. 窗口函数:计算环比和同比
  13. excel多个窗口独立显示_办公软件操作技巧060:如何快速切换excel工作簿
  14. STM32F103C8T6学习
  15. Unity-黑暗之魂复刻-手柄接入与配置(Joystick)
  16. 【场景化解决方案】构建门店通讯录,“门店通”实现零售门店标准化运营
  17. vba调用python代码_Python替代Excel Vba系列(终):vba中调用Python
  18. 用Xbee实现Arduino之间的无线通信,远程控制小灯
  19. Unity游戏开发——新发教你做游戏(一):打开游戏开发新世界的大门
  20. html 下拉框a标签跳转,html下拉框跳转问题

热门文章

  1. [Windows]7种网络编程I/O模型代码实现实例
  2. 前端学习(3343):ant design中导航使用
  3. 前端学习(3181):ant-design的button介绍
  4. [jQuery] 针对jQuery的优化方法有哪些?
  5. [vue] 说说你使用vue过程中遇到的问题(坑)有哪些,你是怎么解决的?
  6. 工作187:表单校验规则
  7. 前端学习(2516):传值和引用
  8. 前端学习(2131):作用域插槽的使用
  9. 前端学习(1768):前端调试值之内存监控的原理和方法三
  10. 前端学习(1749):前端调试值之如何查看js和css源码