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

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

 

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

 

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

 

phpinfo

 

这里的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.use_only_cookies

 

经过这两次的问题,最后,代潇瑞博客总结出一下几点导致不能正常登陆、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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/417005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(2350):condition启动模式配置

pages.json {"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages{"path" : "pages/message/message","style" : {"navigationBarTitleText": "信…

PostgreSQL11 data数据库目录迁移

默认的数据库路径是/var/lib/pgsql/11/data 将现有的数据库文件全部拷贝到新的数据库路径下,然后重启 新建一个路径作为新的数据库数据路径,假如是/gdata/pgdata/data mkdir -p /gdata/pgdata/data chown -R postgres:postgres /gdata/pgdata/data c…

计算机硬件基础大纲,计算机硬件基础教学大纲..docx

计算机硬件技术基础 (III 教学大纲一、课程名称 :计算机硬件技术基础 (III二、课程代码 三、课程的基本要求1.微型计算机基础掌握微型计算机的组成以及各组成部分的主要功能特性 ;掌握微型计算机的总线结构以及简单的工作过程 ;了解现代先进计算机技术 ,了解衡量微型计算机性能…

C# WebApi POST 提交

暂时测试以json方式提交 Content-Type设置 Content-Type: application/json; charsetutf-8 提交参数 {"glsort": 6032,"page_index": 1,"page_size": 10 } WebApi接收 [HttpPost]public string List(dynamic data){int glsort Common.ObjectToI…

前端学习(2351):text组件的使用

detail.vue <template><view><view class""><text>唱歌跳舞</text></view><view seletable><text>唱歌跳舞</text></view><view seletable space"ensp"><text>唱歌 跳舞<…

电子信息工程跨考计算机武大,往届从材料跨考武大085208电子与通信工程初试303分 - 考研 - 小木虫 - 学术 科研 互动社区...

如果您因为分数原因没能如愿考上心目中理想的大学&#xff0c;只要您过了国家线B区分数线(按照往年的政策需要统考数学&#xff1a;参加数一或数二的考试)&#xff0c;材料、物理和化学相关专业&#xff0c;您可要参与报名参与桂林理工大学理学院的调剂,)&#xff0c;由于从201…

python连接postgresql数据库

连接postgresql数据库 pip install psycopg2 ## 导入psycopg2包 import psycopg2 ## 连接到一个给定的数据库 conn psycopg2.connect(database"postgres", user"postgres", password"postgres", host"127.0.0.1&…

前端学习(2352):view组件的使用

detail.vue <template><view><!-- <view class""><text>唱歌跳舞</text></view><view seletable><text>唱歌跳舞</text></view><view seletable space"ensp"><text>唱歌 …

Fatal error compiling: java.lang.ExceptionInInitializerError: com.sun.tools.javac.code.TypeTags

项目换用openjdk11后报错 Fatal error compiling: java.lang.ExceptionInInitializerError: com.sun.tools.javac.code.TypeTags 原因&#xff1a;lombok版本太低了&#xff0c;不支持java11 升级版本&#xff1a;到 1.18.6 <dependency> <groupId>org.projectl…

Spring集成JavaMail并利用线程池发送邮件

我们系统存在大量发送邮件的需求&#xff0c;项目使用的是Spring框架而JavaMail也能很好的跟Spring进行集成&#xff0c;由于发送邮件最好还是使用异步进行发送&#xff0c;所以这里就采用线程池JavaMail进行邮件发送&#xff0c;下面看具体代码实现&#xff1a; Step1、引入Ja…

计算机里创建本地磁盘分区,大神教你如何将本地硬盘进行分区!

如何将本地硬盘进行分区呢&#xff1f;不少小伙伴的电脑上只有一个磁盘C&#xff0c;这样子的话很容易造成磁盘空间不足&#xff0c;可要是进行分区一下的话&#xff0c;那么就不会有这个困扰咯&#xff0c;所以今天小编就来教教大家在不借助任何工具的情况下把本地硬盘进行分区…

consul通过web接口的kv存储操作

接口文档详见https://www.consul.io/api/kv.html 获取指定key的value Method Path Produces GET /kv/:key application/json curl http://10.129.63.40:9001/v1/kv/config/application/data key为config/application/data 返回值 [ { "LockIndex": 0, &qu…

前端学习(2353):button按钮组件的使用

detail.vue <template><view><!-- <view class""><text>唱歌跳舞</text></view><view seletable><text>唱歌跳舞</text></view><view seletable space"ensp"><text>唱歌 …

三维触控测试软件,10 条小技巧,告诉你 iPhone XS Max 的三维触控功能怎么用

苹果在 2018 年发布了 iPhone XS 系列&#xff0c;并且这两款设备都支持 3D Touch(三维触控)&#xff0c;如果您还不太了解这项功能的实用之处&#xff0c;不妨一起来看看&#xff1a;如何开启&#xff1f;前往 iPhone 【设置】-【通用】-【辅助功能】-【三维触控】&#xff0c…

1、math模块

常用math模块方法与常量 import math#math.ceil(n)返回大于等于n的整数 n1 3.141592654 s1 math.ceil(n1) print(s1) # 4#math.copysign(x,y)返回x的绝对值与y的符号 n2 -3.14 s2 math.copysign(n2,1) s3 math.copysign(n2,-1) print(s2,s3) #3.14 -3.14#math.fabs(x) 返回…

Spring Cloud 采用Consul做配置中心

-----------------pom.xml依赖&#xff0c;主要是spring-cloud-starter-consul-config <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency><…

前端学习(2354):image组件的基本使用

pages.json <template><view><!-- <view class""><text>唱歌跳舞</text></view><view seletable><text>唱歌跳舞</text></view><view seletable space"ensp"><text>唱歌 …

vasp服务器中断,求助VASP能带计算的中断原因

我也遇到类似情况&#xff0c;发现服务器内存没有用到多少&#xff1f;是不是并行环境有问题&#xff1f;谢谢&#xff01;DA part: xc-table for Pade appr. of PerdewPOSCAR, INCAR and KPOINTS ok, starting setupWARNING: small aliasing (wrap around) errors must be exp…

Java多线程(一)

线程问题&#xff0c;或称并发 创建线程一般有一下方法 继承Thread类&#xff0c;重写run方法 1 public class TestThread extends Thread{ 2 public void run() { 3 System.out.println("Hello World"); 4 } 5 public static void m…

git 大文件报错Out of memory, malloc failed、 The remote end hung up unexpectedly

git clone出现 "fatal: The remote end hung up unexpectedly" 设置 git config --global http.postBuffer 104857600000 后git clone报错 fatal: Out of memory, malloc failed (tried to allocate 1778384896 bytes) 又把postBuffer改了回去 git config --glo…