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代码优化及php相关问题总结
Oct 09 PHP
thinkphp3查询mssql数据库乱码解决方法分享
Feb 11 PHP
PHP中比较时间大小实例
Aug 21 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
Mar 07 PHP
PHP设计模式之迭代器模式
Jun 17 PHP
php rmdir使用递归函数删除非空目录实例详解
Oct 20 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
Feb 08 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
Jan 15 PHP
PHP addcslashes()函数讲解
Feb 03 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
Jul 26 PHP
php自动加载代码实例详解
Feb 26 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
什么是MVC,好东西啊
2007/05/03 PHP
PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
2009/03/10 PHP
PHP自动选择 连接本地还是远程数据库
2010/12/02 PHP
php字符串截取的简单方法
2013/07/04 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
php教程之魔术方法的使用示例(php魔术函数)
2014/02/12 PHP
为指定元素增加样式的js代码
2009/12/09 Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
2010/06/25 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
2013/08/28 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
javascript自动恢复文本框点击清除后的默认文本
2016/01/12 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
url传递的参数值中包含&amp;时,url自动截断问题的解决方法
2016/08/02 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
总结4个方面优化Vue项目
2019/02/11 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
2020/12/03 Javascript
Python 的内置字符串方法小结
2016/03/15 Python
Python的装饰器用法学习笔记
2016/06/24 Python
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
使用PyQt4 设置TextEdit背景的方法
2019/06/14 Python
python Manager 之dict KeyError问题的解决
2019/12/21 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
2021/03/04 Python
canvas仿写贝塞尔曲线的示例代码
2017/12/29 HTML / CSS
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
xml有哪些解析技术?区别是什么
2016/04/26 面试题
2019暑期安全倡议书!
2019/06/27 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL
ElementUI实现el-form表单重置功能按钮
2021/07/21 Javascript
Win11电源已接通但未充电怎么办?Win11电源已接通未充电的解决方法
2022/04/05 数码科技