PHP提示Cannot modify header information - headers already sent by解决方法


Posted in PHP onSeptember 22, 2014

本文实例讲述了PHP提示Cannot modify header information - headers already sent by解决方法,是进行PHP程序设计过程中经常会遇到的问题。本文对此以实例形式分析解决方法。分享给大家供大家参考。具体方法如下:

现来看看这段代码:

<?php 
ob_start();
setcookie("username","test",time()+3600);
echo "the username is:".$HTTP_COOKIE_VARS["username"]."\n";
echo "the username is:".$_COOKIE["username"]."\n";
print_r($_COOKIE);
?>

访问该PHP文件时提示Warning: Cannot modify header information - headers already sent by

出错的原因:

原因是在php程序的头部加了,header("content-type: text/html; charset=utf-8");之后页面就出现上面的错误。

因为 header('Content-Type:text/html;charset= UTF-8');发送头之前不能有任何输出,空格也不行,你需要将header(...)之前的空格去掉,或者其他输出的东西去掉,如果他上面include其他文件了,你还要检查其他文件里是否有输出。

上网查了一些资料,说是我的php.ini里面的配置出了问题,找到php.ini文件中的output_buffering默认为off的,把它改为on或者任意一个数字,但尝试无结果。

setcookie函数必?在任何资料输出至浏览器前,就先送出
基于上面?些限制,所以?绦?etcookie()函数时,常会碰到"Undefined index"、"Cannot modify header information - headers already sent by"…等问题,解?Q"Cannot modify header information - headers already sent by"这个错误的方法是在产生cookie前,先延缓资料输出至浏览器,因此,您可以在程序的最前方加上ob_start()函?怠?/p>

ob_start()函数用于打开缓冲区,比如header()函数之前如果就有输出,包括回车\空格\换行\都会有"Header had all ready send by"的错误,这时可以先用ob_start()打开缓冲区PHP代码的数据块和echo()输出都会进入缓冲区而不会立刻输出!

通过以下方法,问题得到解决:

//在header()之前

ob_start(); //打开缓冲区 
echo \"Hellon\"; //输出 
header("location:index.php"); //把浏览器重定向到index.php 
ob_end_flush();//输出全部内容到浏览器 
?>

希望本文所述对大家PHP程序设计的学习有所帮助。

PHP 相关文章推荐
Http 1.1 Etag 与 Last-Modified提高php效率
Jan 10 PHP
php设计模式 Adapter(适配器模式)
Jun 26 PHP
PHP 小心urldecode引发的SQL注入漏洞
Oct 27 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
Dec 25 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
Laravel 4.2 中队列服务(queue)使用感受
Oct 30 PHP
一张表搞清楚php is_null、empty、isset的区别
Jul 07 PHP
深入解析WordPress中加载模板的get_template_part函数
Jan 11 PHP
PHP获取input输入框中的值去数据库比较显示出来
Nov 16 PHP
PHP设计模式之原型设计模式原理与用法分析
Apr 25 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
php 实现银联商务H5支付的示例代码
Oct 12 PHP
php过滤HTML标签、属性等正则表达式汇总
Sep 22 #PHP
PHP中exec与system用法区别分析
Sep 22 #PHP
PHP-Java-Bridge使用笔记
Sep 22 #PHP
11个PHPer必须要了解的编程规范
Sep 22 #PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
Sep 22 #PHP
php分页函数完整实例代码
Sep 22 #PHP
php中file_get_content 和curl以及fopen 效率分析
Sep 19 #PHP
You might like
PHP编程中八种常见的文件操作方式
2006/11/19 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
详解PHP中的外观模式facade pattern
2018/02/05 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
jQuery操作 input type=checkbox的实现代码
2012/06/14 Javascript
jQuery.extend()的实现方式详解及实例
2013/06/29 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
2013/09/03 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
初探js和简单隐藏效果的实例
2017/11/23 Javascript
详解Angular5 路由传参的3种方法
2018/04/28 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
2019/10/30 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
Python pickle模块用法实例
2015/04/14 Python
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
使用PyCharm创建Django项目及基本配置详解
2018/10/24 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
python框架flask表单实现详解
2019/11/04 Python
Python Django view 两种return的实现方式
2020/03/16 Python
KIKO MILANO英国官网:意大利知名化妆品和护肤品品牌
2017/09/25 全球购物
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
香港士多网上超级市场:Ztore
2021/01/09 全球购物
营销与策划个人求职信
2013/09/22 职场文书
护理专业学生的求职信范文
2013/12/11 职场文书
活动总结报告格式
2014/05/09 职场文书
离婚协议书范本
2015/01/26 职场文书
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android
nginx配置虚拟主机的详细步骤
2021/07/21 Servers
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
教你一步步实现一个简易promise
2021/11/02 Javascript