php setcookie无效问题解决

Web前端 潘老师 2年前 (2022-01-14) 1059 ℃ (0) 扫码查看

最近修改优化程序员在线工具箱网站的喜欢按钮,发现setcookie无效,导致服务器端一直无法将cookie信息传回浏览器,搞了好久,终于解决了!下面,潘老师说下php的setcookie方法失效问题的解决办法。

原因分析

刚开始网上一般的方法都尝试过,基本无效,在浏览器允许Cookie的情况下,php的setcookie方法无效根本的原因就在于在调用setcookie方法之前,就有执行过类似echodumpvar_dump等方法,cookie是以HTTP HEADER请求头的形式传回浏览器,这些方法也会导致头部输出。

而使用php的setcookie来创建cookie和php中开启session的 session_start一样,在setcookie之前不能有任何HTTP头部输出

潘老师去检查代码,发现如下在调用setcookie之前require引入了几个php文件,这些文件中正是有这样的输出才导致setcookie无效。

解决办法

从调用setcookie方法之前代码或php文件去找出所有的类似头部输出的方法太麻烦了,最终最简单的解决办法就是在调用setcookie方法所在的php文件头部调用如下方法即可解决:

ob_start();

ob_start()函数作用是打开输出缓冲。当输出缓冲激活后,脚本将不会输出内容(除http标头外),相反需要输出的内容被存储在内部缓冲区中。这就成功解决了php setcookie无效的问题。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/java/web/4134.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】