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扩展编写点滴 技巧收集
Mar 09 PHP
PHP 第二节 数据类型之数值型
Apr 28 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
Jan 13 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
Apr 10 PHP
PHP 如何获取二维数组中某个key的集合
Jun 03 PHP
ThinkPHP模板IF标签用法详解
Jul 01 PHP
浅谈php函数serialize()与unserialize()的使用方法
Aug 19 PHP
PHP调用MySQL存储过程并返回值的方法
Dec 26 PHP
php编程每天必学之表单验证
Mar 01 PHP
Symfony2之session与cookie用法小结
Mar 18 PHP
PHP模板引擎Smarty中变量的使用方法示例
Apr 11 PHP
PHP获取类私有属性的3种方法
Sep 10 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
如何用phpmyadmin设置mysql数据库用户的权限
2012/01/09 PHP
PHP静态调用非静态方法的应用分析
2013/05/02 PHP
php实现执行某一操作时弹出确认、取消对话框
2013/12/30 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
tp5.1框架数据库子查询操作实例分析
2020/05/26 PHP
简单的jquery拖拽排序效果实现代码
2011/09/20 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
Node.js中的http请求客户端示例(request client)
2017/05/04 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
Python 实现12306登录功能实例代码
2018/02/09 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
浅谈python中真正关闭socket的方法
2018/12/18 Python
详解python算法之冒泡排序
2019/03/05 Python
Python中如何导入类示例详解
2019/04/17 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
Python响应对象text属性乱码解决方案
2020/03/31 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
护理专业自我鉴定
2014/01/30 职场文书
有创意的广告词
2014/03/18 职场文书
平安校园建设方案
2014/05/02 职场文书
社区志愿者培训方案
2014/06/10 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
电话营销开场白
2015/05/29 职场文书
学校教学管理制度
2015/08/06 职场文书
大学生活感想
2015/08/10 职场文书