Cannot modify header information错误解决方法

 更新时间:2008年10月08日 10:34:10   作者:   我要评论
Warning: Cannot modify header information - headers already sent by出错的原因
<?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函数必須在任何資料輸出至浏览器前,就先送出
基於上面這些限制,所以執行setcookie()函數時,常會碰到"Undefined index"、"Cannot modify header information - headers already sent by"…等問題,解決"Cannot modify header information - headers already sent by"這個錯誤的方法是在產生cookie前,先延緩資料輸出至瀏覽器,因此,您可以在程式的最前方加上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自定义函数实现数组比较功能示例

    这篇文章主要介绍了PHP自定义函数实现数组比较功能,涉及php针对数组的遍历、比较、判断等相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • php 从指定数字中获取随机组合的简单方法(推荐)

    php 从指定数字中获取随机组合的简单方法(推荐)

    下面小编就为大家带来一篇php 从指定数字中获取随机组合的简单方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • PHP mcrypt可逆加密算法分析

    PHP mcrypt可逆加密算法分析

    PHP使用mcrypt拓展的加密算法进行加密解密,学习php的朋友可以参考下。
    2011-07-07
  • php实现的用户查询类实例

    php实现的用户查询类实例

    这篇文章主要介绍了php实现的用户查询类,实例分析了php针对用户查询与判断的相关技巧,需要的朋友可以参考下
    2015-06-06
  • php显示时间常用方法小结

    php显示时间常用方法小结

    这篇文章主要介绍了php显示时间常用方法,实例总结了php时间显示的常用技巧,包括获取当前时间、设置时区时间、计算时间差等,需要的朋友可以参考下
    2015-06-06
  • 解析PHP工厂模式的好处

    解析PHP工厂模式的好处

    本篇文章是对PHP工厂模式的好处进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP/ThinkPHP实现批量打包下载文件的方法示例

    PHP/ThinkPHP实现批量打包下载文件的方法示例

    最近因为工作的需要,要根据条件自动打包供下载的功能,查找相关资料终于解决了,所以下面这篇文章主要给大家介绍了利用PHP或者ThinkPHP如何实现批量打包下载文件的方法示例,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-07-07
  • PHP获取指定日期是星期几的实现方法

    PHP获取指定日期是星期几的实现方法

    这篇文章主要介绍了PHP获取指定日期是星期几的实现方法,涉及php针对日期的读取、判断与字符串、数组相关运算操作技巧,需要的朋友可以参考下
    2016-11-11
  • PHP开发不能违背的安全规则 过滤用户输入

    PHP开发不能违背的安全规则 过滤用户输入

    作为PHP程序员,特别是新手,对于互联网的险恶总是知道的太少,对于外部的入侵有很多时候是素手无策的,他们根本不知道黑客是如何入侵的、提交入侵、上传漏洞、sql 注入、跨脚本攻击等等。
    2011-05-05
  • 使用PHP会话(Session)实现用户登陆功能

    使用PHP会话(Session)实现用户登陆功能

    本篇文章是对PHP会话(Session)实现用户登陆功能进行了详细的分析介绍,需要的朋友参考下
    2013-06-06

最新评论