如何解决thinkphp中session和cookie无效的问题
这篇文章主要介绍了thinkphp中session和cookie无效的解决方法,涉及针对BOM头的分析与删除方法,具有一定的参考借鉴价值,需要的朋友可以参考下
本文实例讲述了thinkphp中session和cookie无效的解决方法。分享给大家供大家参考。具体分析如下:
问题描述:
在本地调试时session和cookie是用没有问题的,我是用session保存当前登录账户的信息,上传服务器之后,发现跳转之后session不复存在,为什么呢?在当前页面输出session是存在的.
遇到这个问题三天了,因为是自学没有老师可以请教,身边也没有几个是弄PHP的,所以真的是很悲剧,于是乎百度,而百度上很多人都是屁话连天,没有什么可以解决问题的,经过三天的修改终于找到了根源,原来是因为绝大多数支持thinkphp的服务器是linux系统,而我们的编程基本都还是windows,这样就会出现bom头这个问题,而PHP对于bom头不能解析,而直接拿下来了,导致session和cookie不能用.
解决方法:
什么是bom头?在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-8编码后执行就会出错的原因了.
去掉bom头的办法,简单的是下面两种:
1、editplus去BOM头的方法
编辑器调整为UTF8编码格式后,保存的文件前面会多出一串隐藏的字符(也即是BOM),用于编辑器识别这个文件是否是以UTF8编码.
运行Editplus,点击工具,选择首选项,选中文件,UTF-8标识选择 总是删除签名,然后对PHP文件编辑和保存后的PHP文件就是不带BOM的了.
2、ultraedit去除bom头办法
打开文件后,另存为选项的编码格式里选择(utf-8 无bom头),确定就ok了,怎么样,去掉bom头很简单吧.
再来一段议论utf8的BOM信息的,BOM是指php文件本身的存储方式为带BOM的UTF-8,普通页面的中文乱码方式一般不是由这个原因导致的.
代码如下:
header("Content-type: text/html; charset=utf-8");
这句话控制html输出页面的编码方式,BOM只有在WINDOWS下采用“记事本”存储为UTF-8时才会有,这个可以用WINHEX把开始的2个字节删掉.
在dreamweaver里面编码设置里面可以设置是否带BOM,一般只要php输出的不是图片(GDI Stream),BOM都不会导致问题,GDI Stream如果开头有了额外的 字符就会显示为 红叉.
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
以上是如何解决thinkphp中session和cookie无效的问题的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undress AI Tool
免费脱衣服图片

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

gitstatus命令用于显示工作目录和暂存区的状态。1.它会检查当前分支,2.比较工作目录和暂存区,3.比较暂存区和最后一次提交,4.检查未跟踪的文件,帮助开发者了解仓库状态并确保提交前无遗漏。

访问币安官网的最新地址可以通过搜索引擎查询和关注官方社交媒体获取。1)使用搜索引擎输入“币安官网”或“Binance”,选择带有官方标志的链接;2)关注币安的官方Twitter、Telegram等账号,查看最新发布的帖子获取最新地址。

查看Docker容器内部进程信息有三种方法:1.使用dockertop命令,可以列出容器内所有进程,显示PID、用户、命令等信息;2.使用dockerexec进入容器内部,再用ps或top命令查看详细进程信息;3.使用dockerstats命令,实时显示容器资源使用情况,结合dockertop可全面了解容器性能。

在Firefox中,CSS渐变显示不正确的原因包括浏览器版本过低、渐变颜色值格式错误和渐变方向设置不当。解决方法包括:1.使用标准的CSS3渐变语法,避免浏览器特定的前缀;2.简化渐变效果以减轻渲染负担;3.在不同版本的Firefox中测试渐变效果以确保兼容性;4.使用在线渐变生成工具生成兼容性更好的代码。

MySQL服务无法启动的原因和解决方法包括:1.检查错误日志,找到关键错误信息,如端口被占用,通过netstat-ano命令终止占用进程。2.修复或替换损坏的配置文件,使用默认配置或官方示例。3.确保服务以具有足够权限的用户身份运行,修改服务登录账户。4.考虑升级或降级MySQL版本,备份数据后安装最新稳定版。5.检查防火墙设置,确保允许MySQL端口通过。6.检查系统更新日志,处理依赖库或系统组件兼容性问题。7.确保硬盘空间充足,避免数据目录空间不足。8.如果以上方法都无效,寻求专业帮助,如M

苹果手机开不了机可以通过以下方法解决:1.强制重启:对于iPhone8及以后的型号,快速按下并松开音量增大键,然后快速按下并松开音量减小键,最后按住侧边按钮直到看到苹果标志。2.检查电池电量:将手机连接充电器至少15分钟,然后尝试开机。3.联系苹果客服或前往苹果授权服务中心进行维修。4.使用恢复模式:连接电脑,使用iTunes或Finder,按住侧边按钮直到出现连接到iTunes的标志,然后选择“恢复”。5.检查是否有物理损坏:检查手机是否有裂缝、凹陷或其他损伤,如果有,建议尽快前往维修中心处理

在远程仓库上创建标签使用gitpushorigin,删除标签使用gitpushorigin--delete。具体步骤包括:1.创建本地标签:gittagv1.0。2.推送到远程:gitpushoriginv1.0。3.删除本地标签:gittag-dv1.0。4.删除远程标签:gitpushorigin--deletev1.0。

安装NumPy库有三种方式:1.使用pip安装:pipinstallnumpy,简单但可能遇到权限或网络问题;2.使用conda安装:condainstallnumpy,适合Anaconda环境,自动解决依赖;3.从源代码安装:gitclone并编译,适合有特殊需求但过程复杂。
