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": "信…

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

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

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

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

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

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

前端学习(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…

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

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

前端学习(2355):uni里面的样式学习

style.vue <template><view><view class"box">我是歌谣</view></view> </template><script>export default {data() {return {}},methods: {}} </script><style> .box{width: 375rpx;height: 375rpx;backgrou…

C#之调用存储过程

C#调用存储过程 以下内容可能有错漏之处&#xff0c;请大家多多指教。 C#后台代码如下&#xff1a; //调用存储过程的方法public static void Startupworkflow(string firstnodename, string secondnodename, string firstact) { SqlConnection conn new Sq…

前端学习(2357):uni的基本数据绑定

<template><view><view>{{msg}}</view><view>{{你好世界}}</view></view> </template><script>export default {data() {return {msg:hello}},methods: {}} </script><style></style>运行结果

win7下搭建小程序服务器,技术开发人员告诉你微信小程序怎么做

现在每个玩微信公众号的博主基本上都在玩微信小程序&#xff0c;现在的小程序特别火。虽然小程序特别火但也不是任何人想立马做就能做的&#xff0c;也是需要会开发及了解微信小程序的相关规则才能做的。今天邀请技术开发人员告诉你微信小程序怎么做&#xff0c;想入门的小伙伴…

前端学习(2358):v-bind和v-for

geyao.vue <template><view><view>{{msg}}</view><view>{{你好世界}}</view><image v-bind:src"imgUrl" mode""></image><view v-for"(item,index) in arr">序号:{{index}}名字:{{item.…

怎么把数据文件上传云服务器,怎么把数据上传导云服务器

怎么把数据上传导云服务器 内容精选换一换安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具&#xff0c;将文件上传到云服务器。例如QQ.exe。在本地主机和Windows云服务器上分别安装数据传输工具&#xff0c;将文件上传到云服务器。例如QQ.exe。本地磁盘映射(推…

前端学习(2359):如何注册事件

<template><view><view>{{msg}}</view><view>{{你好世界}}</view><image v-bind:src"imgUrl" mode""></image><view v-for"(item,index) in arr">序号:{{index}}名字:{{item.name}},年龄…

微信无法连接服务器1-502,只有一部iphone x手机,在微信公众号中选择菜单,出现bad gateway 502错误,原因?...

1.菜单项对应的网页链接参见下图&#xff1a;2.后台看到下面的错误信息:--- iphone x 访问日志172.17.0.28 - - [03/Jan/2020:10:19:17 0800] "GET /m02?atwxyes HTTP/1.0" 502 182 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) Ap…

前端学习(2360):生命周期函数的学习

app.vue <script>export default {onLaunch: function() {console.log(App Launch)},onShow: function() {console.log(App Show)},onHide: function() {console.log(App Hide)},onError:function(err){console.log(出现异常,err)}} </script><style>/*每个…

糖豆人服务器要维护多久,糖豆人刚上四天,紧急维护9小时后又延长,玩家:从中午到现在了...

最近&#xff0c;不少主播都纷纷开始玩起一款多人闯关类的游戏《糖豆人: 终极淘汰赛》&#xff0c;说起这游戏很多人仍然把它定位成多人吃鸡类型&#xff0c;其实它的原型来自于电视上每年夏天都要放的冲关挑战节目&#xff0c;小编还记得当时有一个特别出名的节目叫“男生女生…

前端学习(2361):下拉刷新的学习

content.vue <template><view><view>这是列表页</view><view v-for"item in list">{{item}}</view></view> </template><script>export default {data() {return {list:[前端,java,UI,测试]}},onPullDownRef…

Delphi XE10编写的《开放式公路收费系统》

Delphi XE10编写的《开放式公路收费系统》 ———————————————————————————————————————— 适用于一级公路、机场公路、开放式收费公路 开发工具&#xff1a;Delphi XE10 数据库&#xff1a;SQL Server 2008 硬件&#xff1a; 一体工控机 …