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 相关文章推荐
PHP读取MySQL数据代码
Jun 05 PHP
php懒人函数 自动添加数据
Jun 28 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
Jun 17 PHP
PHP实现微信公众平台音乐点播
Mar 20 PHP
php使用$_POST或$_SESSION[]向js函数传参
Sep 16 PHP
初识laravel5
Mar 02 PHP
PHP多线程编程之管道通信实例分析
Mar 07 PHP
深入理解PHP内核(二)之SAPI探究
Nov 10 PHP
crontab无法执行php的解决方法
Jan 25 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
Apr 04 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
Jul 31 PHP
PHP html_entity_decode()函数讲解
Feb 25 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
IIS环境下快速安装、配置和调试PHP5.2.0
2006/12/17 PHP
PHP中执行cmd命令的方法
2014/10/11 PHP
PHP实现多级分类生成树的方法示例
2017/02/07 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
2017/03/16 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
javascript学习笔记(四)function函数部分
2014/09/30 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
2015/08/22 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
jQuery通用的全局遍历方法$.each()用法实例
2016/07/04 Javascript
JavaScript 中对象的深拷贝
2016/12/04 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
修改node.js默认的npm安装目录实例
2018/05/15 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
JavaScript使用表单元素验证表单的示例代码
2019/08/20 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
2020/06/17 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
[02:57]DOTA2亚洲邀请赛小组赛第四日 赛事回顾
2015/02/02 DOTA
python的mysqldb安装步骤详解
2017/08/14 Python
Python使用struct处理二进制的实例详解
2017/09/11 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
python读取并定位excel数据坐标系详解
2019/06/26 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
python Matplotlib模块的使用
2020/09/16 Python
中间件分为哪几类
2012/03/14 面试题
高校毕业生自我鉴定
2013/10/27 职场文书
物理教师自荐信范文
2013/12/28 职场文书
给朋友的道歉信
2014/01/09 职场文书
高中综合实践活动总结
2014/07/07 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
pytorch 如何使用float64训练
2021/05/24 Python
一文搞懂Redis中String数据类型
2022/04/03 Redis
浅谈Python中对象是如何被调用的
2022/04/06 Python