在ThinkPHP会话和cookie无效的解决方案
对问题的描述:
在本地调试时,会话和cookie没有问题。我使用会话保存当前登录帐户的信息。上传服务器后,发现会话在跳转后不存在。为什么在当前页中输出会话存在。
遇到这个问题的三天,因为它是自我没有老师可以问,不要在PHP,所以很悲惨,所以百度,百度,很多人都是屁话连天,没有什么问题是可以解决的,经过三天的变化,最后发现根原因为大部分服务器支持ThinkPHP Linux系统,和我们的基本程序是Windows,所以会有这个问题的BOM头,和PHP的BOM头不能解决,直接取下来,导致会话Cookie不能使用。
Resolvent:
什么是BOM头在UTF-8编码的文件头中的BOM,占用三个字节是用来识别属于UTF-8编码的文件,现在有很多的软件来识别数据的头,但有些不能识别BOM头,如PHP不会承认BOM的头,这是为什么使用记事本编辑执行错误后的UTF-8编码将。
删除BOM头的方法就是下面两个:
1、EditPlus BOM头的方法
当编辑调整为UTF8编码格式,将有更多的隐藏人物(即BOM)在保存文件前,这是用于编辑识别文件是否是UTF8编码。
运行Editplus,点击工具,选择第一个选项,选择文件,UTF-8身份选择总是删除签名,那么PHP文件进行编辑和保存后的PHP文件BOM的自由。
2、UltraEdit去除BOM头
打开文件后,保存在代码格式选项(UTF-8无BOM头),确定好,如何去除BOM头非常简单。
另一种方式来谈论UTF8的BOM信息,BOM,这意味着PHP文件的存储方式是UTF-8的BOM。普通页面的随机页面的中文方式通常不是由这个原因引起的。
复制代码代码如下:标题(内容类型:文本/ HTML;字符集= UTF-8);
这句话控制HTML输出页面的编码方式。BOM只能存储在Windows当UTF-8存储在记事本,可以删除同2字节WinHex开始。
在Dreamweaver中,编码设置可以在BOM中设置。只要PHP输出不是GDI(流),BOM就不会造成问题。如果GDI有流,如果它以额外字符开始,它将显示红叉。
希望本文有助于基于ThinkPHP框架的PHP程序设计人。