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脚本数据库功能详解(上)
Oct 09 PHP
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
Jul 14 PHP
PHP递归返回值时出现的问题解决办法
Feb 19 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
Apr 24 PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
Mar 23 PHP
PHP中file_exists使用中遇到的问题小结
Apr 05 PHP
php格式化json函数示例代码
May 12 PHP
深入理解php printf() 输出格式化的字符串
May 23 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
Jul 09 PHP
php_pdo 预处理语句详解
Nov 21 PHP
laravel 实现上传图片到本地和前台访问示例
Oct 21 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命名空间(Namespace)的使用详解
2013/05/04 PHP
destoon实现底部添加你是第几位访问者的方法
2014/07/15 PHP
php内嵌函数用法实例
2015/03/20 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
一种JavaScript的设计模式
2006/11/22 Javascript
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
javascript用户注册提示效果的简单实例
2013/08/17 Javascript
js数组的操作指南
2014/12/28 Javascript
JavaScript学习心得之概述
2015/01/20 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
2016/04/01 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
Vue 进入/离开动画效果
2017/12/26 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
2018/09/06 jQuery
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
深入了解Django View(视图系统)
2019/07/23 Python
python画环形图的方法
2020/03/25 Python
试述DBMS的主要功能
2016/11/13 面试题
千元咖啡店的创业计划书范文
2013/12/29 职场文书
初中生物教学反思
2014/01/10 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
培训通知
2015/04/17 职场文书
2019消防宣传标语!
2019/07/10 职场文书
python Tkinter的简单入门教程
2021/04/11 Python
Java实现扫雷游戏详细代码讲解
2022/05/25 Java/Android
jdbc中自带MySQL 连接池实践示例
2022/07/23 MySQL