ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-03-08 14:02:42 浏览: 评论:0
这篇文章主要介绍了ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法,需要的朋友可以参考下
近期做一个网站的投票时,遇到ThinkPHP中的cookie和session冲突导致Cookie不能使用的情况。
该网站采用的是ThinkPHP框架制作,有一页面上面展示很多图片,要求每个图片下面有对应的投票,通过限制ip地址来,限制游客在一定时间范围内,能对多个图片投票,但是每个图片只能投票一次,开始使用ip存储在数据库解决,后来改进为使用session存储,ip在服务文件里,不过要把生成的sessionid存储在本地的cookie中,按照ThinkPHP手册说明操作session一切顺利,但是在生成cookie之后,却在本地电脑中找不到cookie文本,原本以为是本地电脑限制cookie的生成,可是查看和测试的结果是没有限制,于是自己又单独建立了一个php文件,测试生成cookie,没问题,在本地找到了cookie文本,于是在网上查找到如下内容。顺序解决了问题,使用setcookie()函数设置cookie,得到了想要的结果。
解决办法如下:
找到php.ini 这个配置文件,然后查找一项:output_buffering将其值由原来的off改为on,重新启动Apache就ok了。
另外还有很多相似的问题:
有些时候会发现原在本地运行没有问题的文件,在服务器上测试时,竟然提示本地没有出现的错误: Warning: Cannot modify header information - headers already sent by…
这样的语句,很显然,造成这个原因是因为setcookie造成的,查了一下网上,有如下的解释: cookie本身在使用上有一些限制,例如:
1.呼叫setcookie的叙述必须放在标签之前
2.呼叫setcookie之前,不可使用echo
3.直到网页被重新载入後,cookie才会在程序中出现
4.setcookie函数必须在任何资料输出至浏览器前,就先送出
基於上面这些限制,所以执行setcookie()函数时,常会碰到“Undefined index”、“Cannot modify header information - headers already sent by”…等问题,解决“Cannot modify header information - headers already sent by”这个错误的方法是在产生cookie前,先延缓资料输出至浏览器,因此,您可以在程序的最前方加上ob_start()这个函数。这样问题就可以解决了。 但是如果要加上ob_start()的话,有不大可行,程序都写完了,才来改这个似乎有点郁闷!发现提示这个错误的时候,我就在想我本地怎么没提示这个问题呢,还以为是PHP.ini配置不一样,想想又不对,都是差不多的。于是看看后面跟的那句“output started at…”意思是在setcookie之前已经在另一处有输出了,于是找到output started at后面跟的那个文件,最后发现第一行是空白的。
Tags: cookie session
相关文章
- ·在thinkphp3中如何处理cookie数组(2014-04-12)
- ·thinkphp之session和cookie无效(2014-11-21)
- ·thinkphp中session和cookie无效的解决方法(2021-05-04)
- ·在thinkphp中session无法传值的问题(2014-04-12)
- ·Thinkphp session无法传值(2014-04-12)
- ·ThinkPHP Session 使用详解及实例(2014-04-21)
- ·tp5实现登录并保存session,再由不同角色权限跳转页面(2020-03-28)
- ·ThinkPHP的模版中调用session数据的方法(2021-03-08)
- ·ThinkPHP框架实现session跨域问题的解决方法(2021-03-08)
- ·ThinkPHP关于session的操作方法汇总(2021-03-21)
- ·ThinkPHP实现将SESSION存入MYSQL的方法(2021-03-23)
- ·thinkphp在模型中自动完成session赋值示例代码(2021-04-11)
- ·ThinkPHP中Session用法详解(2021-05-01)
- ·ThinkPHP自定义Redis处理SESSION的实现方法(2021-08-06)
- ·thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例(2021-12-29)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)