新浪微博登录研究中,遇到这个错误:
【Cannot modify header information – headers already sent by 】如下图:
此时我才XX写了几行代码!
比较坑的是,当时直接用服务器来测试代码,结果显示的页面是空白页面,什么报错也没有!还好机智的看了会儿本地环境下,出现图1的报错。思来想去,问来问去,终究还是解决了这个Bug,原来是条Dog,感觉自己就是只Pig!
咱们首先来分析下错误。造成的原因是因为setcookie语句的问题。
cookie本身在使用上有一些限制,例如:
1.呼叫setcookie的叙述必须放在<html>标签之前
2.呼叫setcookie之前,不可使用echo
3.直到网页被重新载入后,cookie才会在程式中出现
4.setcookie函数必須在任何资料输出至浏览器前,就先送出
5.……
基于上面这些限制,所以执行setcookie()函数时,常会碰到“Undefined index”、“Cannot modify header information – headers already sent by”…等问题。解決“Cannot modify header information – headers already sent by”这个错误的方法是在产生cookie前,先延缓资料输出至浏览器。写法如下:
1.在页面顶部的php标签中加入 ob_start();
2.在返回的信息下面加入 ob_end_flush();

好啦,就是这么简单~
Finally,谢谢大家的阅读!祝每天开心~
版权声明:本文为博主半原创文章,未经博主允许不得转载。
赞赏
微信赞赏
支付宝赞赏
发表评论