Cannot modify header information错误解决方法


Posted in PHP onOctober 08, 2008

<?php
ob_start();
setcookie("username","宋岩宾",time()+3600);
echo "the username is:".$HTTP_COOKIE_VARS["username"]."\n";
echo "the username is:".$_COOKIE["username"]."\n";
print_r($_COOKIE);
?>
Warning: Cannot modify header information - headers already sent by出错的原因
我在php程序的头部加了,
header("cache-control:no-cache,must-revalidate");
之后页面就出现上面的错误,看了N个资料也没有结果。今天偶尔发现原来是我的php.ini里面的配置出了问题,在C:\windows\下找到php.ini文件
output_buffering默认为off的。我现在把它设为4096就OK了。
用于解决显示提示错误,不能按(日期+导出文件数)为文件名的错误信息.
setcookie函数必?在任何?料?出至浏览器前,就先送出
基於上面?些限制,所以?绦?etcookie()函??r,常??龅?Undefined index"、"Cannot modify header information - headers already sent by"…等???,解?Q"Cannot modify header information - headers already sent by"?????的方法是在?生cookie前,先延??料?出至?g?器,因此,您可以在程式的最前方加上ob_start();???函?怠
ob_start()函数用于打开缓冲区,比如header()函数之前如果就有输出,包括回车\空格\换行\都会有"Header had all ready send by"的错误,这时可以先用ob_start()打开缓冲区PHP代码的数据块和echo()输出都会进入缓冲区而不会立刻输出.当然打开缓冲区的作用很多,只要发挥你的想象.可以总结以下四点:

1.用于header()之前

ob_start(); //打开缓冲区
echo \"Hellon\"; //输出
header("location:index.php"); //把浏览器重定向到index.php
ob_end_flush();//输出全部内容到浏览器
?>

2.phpinfo()函数可获取客户端和服务器端的信息,但要保存客户端信息用缓冲区的方法是最好的选择.
ob_start(); //打开缓冲区
phpinfo(); //使用phpinfo函数
$info=ob_get_contents(); //得到缓冲区的内容并且赋值给$info
$file=fopen(\'info.txt\',\'w\'); //打开文件info.txt
fwrite($file,$info); //写入信息到info.txt
fclose($file); //关闭文件info.txt
?>

3.静态页面技术
ob_start();//打开缓冲区
?>
php页面的全部输出
$content = ob_get_contents();//取得php页面输出的全部内容
$fp = fopen("output00001.html", "w"); //创建一个文件,并打开,准备写入
fwrite($fp, $content); //把php页面的内容全部写入output00001.html,然后……
fclose($fp);
?>

4.输出代码
Function run_code($code) {
If($code) {
ob_start();
eval($code);
$contents = ob_get_contents();
ob_end_clean();
}else {
echo "错误!没有输出";
exit();
}
return $contents;
}

PHP 相关文章推荐
把PHP安装为Apache DSO
Oct 09 PHP
php与mysql建立连接并执行SQL语句的代码
Jul 04 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
Sep 05 PHP
七款最流行的PHP本地服务器分享
Feb 19 PHP
PHP获取MSN好友列表类的实现代码
Jun 23 PHP
PHP获取文件的MD5值并判断是否被修改的例子
Jun 19 PHP
php解析http获取的json字符串变量总是空白null
Mar 02 PHP
实例讲解PHP设计模式编程中的简单工厂模式
Feb 29 PHP
Ubuntu 16.04下安装PHP 7过程详解
Mar 28 PHP
如何通过View::first使用Laravel Blade的动态模板详解
Sep 21 PHP
PHP中Session ID的实现原理实例分析
Aug 17 PHP
php面向对象重点知识分享
Sep 27 PHP
不用mod_rewrite直接用php实现伪静态化页面代码
Oct 04 #PHP
php 友好URL的实现(吐血推荐)
Oct 04 #PHP
PHP注释实例技巧
Oct 03 #PHP
使用eAccelerator加密PHP程序
Oct 03 #PHP
一些使用频率比较高的php函数
Oct 03 #PHP
PHP base64+gzinflate压缩编码和解码代码
Oct 03 #PHP
php下实现在指定目录搜索指定类型文件的函数
Oct 03 #PHP
You might like
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
Jquery 学习笔记(一)
2009/10/13 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
nodejs读取memcache示例分享
2014/01/02 NodeJs
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
2014/11/16 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
2016/04/14 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
JS实现间歇滚动的运动效果实例
2016/12/22 Javascript
jquery PrintArea 实现票据的套打功能(代码)
2017/03/17 Javascript
jQuery日期范围选择器附源码下载
2017/05/23 jQuery
jquery实现倒计时小应用
2017/09/19 jQuery
4个顶级开源JavaScript图表库
2018/09/29 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
利用js canvas实现五子棋游戏
2020/10/11 Javascript
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
python绘图方法实例入门
2015/05/19 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
安全员岗位职责
2013/11/11 职场文书
自我评价怎么写好呢?
2013/12/05 职场文书
初三学生个人自我评定
2014/04/06 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
2016年情人节问候语
2015/11/11 职场文书
2016年暑假家长对孩子评语
2015/12/01 职场文书
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server