thinkphp中session和cookie无效的解决方法


Posted in PHP onDecember 19, 2014

本文实例讲述了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如果开头有了额外的 字符就会显示为 红叉.

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
杏林同学录(七)
Oct 09 PHP
配置支持SSI
Nov 25 PHP
PHP中simplexml_load_string函数使用说明
Jan 01 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
Mar 28 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
Jul 01 PHP
ThinkPHP应用模式扩展详解
Jul 16 PHP
3款值得推荐的微信开发开源框架
Oct 28 PHP
深入探究PHP的多进程编程方法
Aug 18 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
Jan 07 PHP
PHP简单实现无限级分类的方法
May 13 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 PHP
PHP+MySQL实现在线测试答题实例
Jan 02 PHP
thinkphp3.0输出重复两次的解决方法
Dec 19 #PHP
thinkphp3.2.2实现生成多张缩略图的方法
Dec 19 #PHP
9个经典的PHP代码片段分享
Dec 18 #PHP
PHP程序员必须清楚的问题汇总
Dec 18 #PHP
8个PHP程序员常用的功能汇总
Dec 18 #PHP
ThinkPHP打开验证码页面显示乱码的解决方法
Dec 18 #PHP
ThinkPHP中使用ajax接收json数据的方法
Dec 18 #PHP
You might like
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
php获取图片信息的方法详解
2015/12/10 PHP
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
PHP小偷程序的设计与实现方法详解
2016/10/15 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
2015/08/10 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
JS实现的类似微信聊天效果示例
2019/01/29 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
vue实现多个echarts根据屏幕大小变化而变化实例
2020/07/19 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
Python中尝试多线程编程的一个简明例子
2015/04/07 Python
简介Python中用于处理字符串的center()方法
2015/05/18 Python
python模块smtplib实现纯文本邮件发送功能
2018/05/22 Python
详解python实现小波变换的一个简单例子
2019/07/18 Python
Django REST framework 单元测试实例解析
2019/11/07 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
高清屏下canvas重置尺寸引发的问题的解决
2019/10/14 HTML / CSS
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
食品安全承诺书
2014/05/22 职场文书
啤酒节策划方案
2014/05/28 职场文书
2015年大学生实习评语
2015/03/25 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书