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生成静态页面分析 模板+缓存+写文件
Aug 17 PHP
网站用php实现paypal整合方法
Nov 28 PHP
php中计算中文字符串长度、截取中文字符串的函数代码
Aug 09 PHP
windows7下安装php的imagick和imagemagick扩展教程
Jul 04 PHP
屏蔽PHP默认设置中的Notice警告的方法
May 20 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
May 31 PHP
Yii框架中jquery表单验证插件用法示例
Oct 18 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
PHP实现的微信公众号扫码模拟登录功能示例
May 30 PHP
PHP的重载使用魔术方法代码实例详解
Feb 26 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
PHP之sprintf函数用法详解
2014/11/12 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
脚本收藏iframe
2006/07/21 Javascript
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
js返回上一页并刷新代码整理
2012/12/21 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
jquery用data方法获取某个元素上的事件
2014/06/23 Javascript
JS获取表格内指定单元格html内容的方法
2015/03/31 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
js点击任意区域弹出层消失实现代码
2016/12/27 Javascript
nodejs获取微信小程序带参数二维码实现代码
2017/04/12 NodeJs
JavaScript的继承实现小结
2017/05/07 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
微信小程序获取微信运动步数的实例代码
2017/07/20 Javascript
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
Threejs实现滴滴官网首页地球动画功能
2020/07/13 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
2020/09/11 Javascript
python中mechanize库的简单使用示例
2014/01/10 Python
跟老齐学Python之正规地说一句话
2014/09/28 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
40个你可能不知道的Python技巧附代码
2020/01/29 Python
详解如何获取localStorage最大存储大小的方法
2020/05/21 HTML / CSS
remote接口和home接口主要作用
2013/05/15 面试题
兼职业务员岗位职责
2014/01/01 职场文书
2015大学生实训报告
2014/11/05 职场文书
新闻稿怎么写
2015/07/18 职场文书
Java基于字符界面的简易收银台
2021/06/26 Java/Android