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 adodb分页实现代码
Mar 19 PHP
php产生随机数的两种方法实例代码 输出随机IP
Apr 08 PHP
基于PHP创建Cookie数组的详解
Jul 03 PHP
PHP调用VC编写的COM组件实例
Mar 29 PHP
编写PHP脚本过滤用户上传的图片
Jul 03 PHP
我整理的PHP 7.0主要新特性
Jan 07 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
Feb 15 PHP
php使用curl详细解析及问题汇总
Aug 11 PHP
PHP文件操作详解
Dec 30 PHP
PHP PDOStatement::setAttribute讲解
Feb 01 PHP
浅谈laravel aliases别名的原理
Oct 24 PHP
PHP实现简单日历类编写
Aug 28 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
Zerg兵种介绍
2020/03/14 星际争霸
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
PHP exif扩展方法开启详解
2014/07/28 PHP
php+mysql实现数据库随机重排实例
2014/10/17 PHP
php实现中文转数字
2016/02/18 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
PHP 断点续传实例详解
2017/11/11 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
JavaScript 数组的 uniq 方法
2008/01/23 Javascript
js+jquery实现图片裁剪功能
2015/01/02 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
URL中“#” “?” &amp;“”号的作用浅析
2017/02/04 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
2017/02/10 Javascript
Vue2 配置 Axios api 接口调用文件的方法
2017/11/13 Javascript
[41:13]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第一场 11.20
2020/11/20 DOTA
python的Template使用指南
2014/09/11 Python
pygame学习笔记(5):游戏精灵
2015/04/15 Python
python opencv之SIFT算法示例
2018/02/24 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
pytorch逐元素比较tensor大小实例
2020/01/03 Python
Python内置方法和属性应用:反射和单例(推荐)
2020/06/19 Python
python二维图制作的实例代码
2020/12/03 Python
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
物流专业大学生的自我鉴定
2013/11/13 职场文书
自荐信格式
2013/12/01 职场文书
秋季运动会表扬稿
2014/01/16 职场文书
保护环境建议书300字
2014/05/13 职场文书
禁止高声喧哗的标语
2014/06/11 职场文书
高速铁道技术专业求职信
2014/08/09 职场文书
音乐之声音乐广播稿
2014/09/10 职场文书
机械制造专业大学生自我鉴定
2014/09/19 职场文书
学习保证书100字
2015/02/26 职场文书
Springboot使用Spring Data JPA实现数据库操作
2021/06/30 Java/Android