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 header示例代码(推荐)
Sep 08 PHP
PHP 图片上传代码
Sep 13 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
Jun 29 PHP
使用PHP破解防盗链图片的一个简单方法
Jun 07 PHP
ThinkPHP中Session用法详解
Nov 29 PHP
给WordPress的编辑后台添加提示框的代码实例分享
Dec 25 PHP
WordPress中调试缩略图的相关PHP函数使用解析
Jan 07 PHP
php实现word转html的方法
Jan 22 PHP
thinkPHP3.1验证码的简单实现方法
Apr 22 PHP
THINKPHP3.2使用soap连接webservice的解决方法
Dec 13 PHP
Yaf框架封装的MySQL数据库操作示例
Mar 06 PHP
PHP标准库 (SPL)――Countable用法示例
Jun 05 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 fread()使用技巧
2010/01/22 PHP
PHP以mysqli方式连接类完整代码实例
2014/07/15 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
2013/12/30 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
js监听html页面的上下滚动事件方法
2018/09/11 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
JQuery实现折叠式菜单的详细代码
2020/06/03 jQuery
vant时间控件使用方法详解
2020/12/24 Javascript
python根据出生日期获得年龄的方法
2015/03/31 Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
tensorflow中next_batch的具体使用
2018/02/02 Python
python更改已存在excel文件的方法
2018/05/03 Python
用python实现将数组元素按从小到大的顺序排列方法
2018/07/02 Python
对python:print打印时加u的含义详解
2018/12/15 Python
Python简单获取二维数组行列数的方法示例
2018/12/21 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
Boden美国官网:英伦原创时装品牌
2017/07/03 全球购物
Calzedonia美国官网:意大利风格袜子、打底裤和沙滩装
2018/07/19 全球购物
供电工程专业求职信
2014/08/09 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
离婚协议书范文2016
2016/03/18 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
吃通javascript正则表达式
2021/04/21 Javascript
vue-cropper插件实现图片截取上传组件封装
2021/05/27 Vue.js