解决Thinkphp无法登录后台正常跳转,session_start(): Cannot send session cache limiter – headers

  • A+
所属分类:编程语言

thinkphp框架微信小说分销系统源码

TNND首先骂一句以抒胸臆,为了解决这个莫名奇妙的问题折腾了好久。下面具体说说是什么情况以及怎么解决的。

问题描述

最近得到一份Thinkphp框架的微信小说分销系统源码,在本地进行测试时可以正常登录后台,但是放到万网虚拟主机中进行测试时却不能正常登录,输入正确的用户名和密码后仍然是跳转到登录页面。通过在浏览器控制台中勾选preserve log进行监控网页跳转情况发现,在正常执行了跳转函数后又继续跳转到了登录地址。另外,在虚拟主机的网站目录Application\Runtime\Logs\Admin日志中发现,报如下错误信息,而在本地测试的目录中没有出现。

session_start(): Cannot send session cookie - headers already sent by (output started at /data/home/………………

session_start(): Cannot send session cache limiter - headers already sent (output started at /data/home/………………

错误原因

在设置session和cookie前,不能实质性的向浏览器有任何显示性输出!如:任何文字,空行,回车,空格等。

产生原因

这个问题出现是因为php文件格式是UTF-8 BOM编码引起的,但是经过排查发现,网站源码中说使用的文件均为UTF-8格式(包括登录控制文件),而只有Application\Common\Conf\config.php配置数据库文件为带BOM格式的。

解决办法

用notepad++打开config.php文件,在‘编码’菜单栏中将其切换为使用UTF-8格式编码(一定不要使用UTF-8-BOM编码)保存后重新上传到网站对应的位置并覆盖,重新打开Thinkphp后台登录地址,然后输入用户名密码即可正常登录并跳转到后台。

 

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: