解决Warning: require(E:\testwwwroot\cc06\wp-admin/wp-includes/compat.php) [function.require]: failed to open stream: No such file or directory in E:\testwwwroot\cc06\wp-admin\wp-settings.php on line 246
Fatal error: require() [function.require]: Failed opening required 'E:\testwwwroot\cc06\wp-admin/wp-includes/compat.php' (include_path='.;C:\php5\pear') in E:\testwwwroot\cc06\wp-admin\wp-settings.php on line 246。

1. Blank lines (空白行): Make sure no blank line after <?php ... ?> of the calling php script. 检查有<?php ... ?> 后面没有空白行,特别是include或者require的文件。不少问题是这些空白行导致的。

2. Use exit statement (用exit来解决): Use exit after header statement seems to help some people 在header后加上exit(); header ("Location: xxx"); exit();

3. PHP has this annoying problem, if your HTML goes before any PHP code or any header modification before redirecting to certain page, it'll said "Warning: Cannot modify header information - headers already sent by ...." Basically anytime you output to browser, the header is set and cannot be modified.   So two ways to get around the problem:

3a. Use Javascript (用Javascript来解决): <? echo "<script> self.location(\"file.php\");</script>"; ?> Since it's a script, it won't modify the header until execution of Javascript. 可以用Javascript来代替header。但是上面的这段代码我没有执行成功... 另外需要注意,采用这种方法需要浏览器支持Javascript.

3b. Use output buffering (用输出缓存来解决): <?php ob_start(); ?> ... HTML codes ... <?php ... PHP codes ... header ("Location: ...."); ob_end_flush(); ?> This will save the output buffer on server and not output to browser yet, which means you can modify the header all you want until the ob_end_flush() statement.   This method is cleaner than the Javascript since Javascript method assumes the browser has Javascript turn on.   However, there are overhead to store output buffer on server before output, but with modern hardware I would imagine it won't be that big of deal.   Javascript solution would be better if you know for sure your user has Javascript turn on on their browser.

就像上面的代码那样,这种方法在生成页面的时候缓存,这样就允许在输出head之后再输出header了。本站的许愿板就是采用这种方法解决的header问题。

http://www.discuz.net/viewthread.php?tid=70318

在后台管理或者有时候在论坛,点击一个页面,页顶会出现 Warning: Cannot modify header information - headers already sent by.... 这类语句,造成这个原因是因为setcookie语句的问题。
cookie本身在使用上有一些限制,例如: 1.呼叫setcookie的敘述必須放在<html>標籤之前 2.呼叫setcookie之前,不可使用echo 3.直到網頁被重新載入後,cookie才會在程式中出現 4.setcookie函數必須在任何資料輸出至瀏覽器前,就先送出 5.…… 基於上面這些限制,所以執行setcookie()函數時,常會碰到"Undefined index"、"Cannot modify header information - headers already sent by"…等問題,解決"Cannot modify header information - headers already sent by"這個錯誤的方法是在產生cookie前,先延緩資料輸出至瀏覽器,因此,您可以在程式的最前方加上ob_start();這個函數。这样就可以解决了。

4.set output_buffering = On in php.ini (开启php.ini中的output_buffering ) set output_buffering = On will enable output buffering for all files. But this method may slow down your php output. The performance of this method depends on which Web server you're working with, and what kind of scripts you're using. 这种方法和3b的方法理论上是一样的。但是这种方法开启了所有php程序的输出缓存,这样做可能影响php执行效率,这取决于服务器的性能和代码的复杂度。

WordPress的程序执行时会首先调用wp-config.php一类的配置文件,也会调用wp-db.php建立数据库连接以备后用。这些文件只是做一些设置,并不输出html代码。设置完了后,程序本身开始执行了,有些程序会使用header命令设置一个HTTP头。由于HTTP头必须在html代码输出之前设置好,否则html代码已经开始往客户端发送了,HTTP也就已经发送过了,没法追回来重新设置了。WordPress CodeX里对这个问题作出了说明:《How do I solve the Headers already sent warning problem?》。文章指出:要确保各个文件——尤其是经常被编辑的wp-config.php文件——以<?php开头,以?>结尾,前后不能有其他字符。具体到上面的例子,很明显,提示信息说wp-config.php的第一行就开始了html输出,这有可能是第一行的<?php部分前面被加上的其他字符,比如空格一类的。再联想到以前提到的BOM的问题,那么非常有可能是因为这位朋友使用了Windows的记事本编辑了wp-config.php文件并保存成了UTF-8编码的文档,从而因为BOM的三个字符的输出造成了header命令执行出错。

WordPress中文论坛没有提供全文搜索的功能,只能搜索标题,所以我用Google搜索了一下Cannot modify header information site:wordpress.org.cn,好像碰到这个问题的人还真不少。目前大家用的WordPress主要是WordPress英文原版和几个WordPress中文版。我的中文包又不包含wp-config-sample.php文件,自然不关我的事;WordPress原版用的ASCII码,自然不包含BOM,也不会出这样的错误;xigang制作的WordPress中文版在WordPress中文论坛有下,我去下载了WordPress 2.0.4和2.0.3这两个,检查了一下,没有问题;点点游的WordPress 2.0.4中文版里,wp-config-sample.php文件用的是GB2312编码和DOS行尾符,GOD!不过这样也好,如果有人用记事本修改了这个文件,DOS行尾符不会造成编辑问题,GB2312编码不会造成BOM的问题,呼。

唉,如果你要用WordPress架Blog,还是扔掉记事本,装个UltraEdit或者EditPlus吧!

Update:那些提示(output started at \wp-includes\wp-db.php:104)的,我打开wp-db.php文件看了一下,104行好像是输出数据库错误的呀。还是检查一下你的数据库连接,还有是不是IIS上才会有这个问题呀?

转载于:https://www.cnblogs.com/wangchunming/archive/2012/08/29/2662335.html

解决Warning: Cannot modify header information - headers already sent b...相关推荐

  1. 解决Warning: Cannot modify header information – headers already sent by

    Warning: Cannot modify header information – headers already sent by-. 这类语句,造成这个原因是因为setcookie语句的问题. ...

  2. PHP的 Warning: Cannot modify header information - headers already sent by警告

    在写php页面时,突然有一天发现这个警告,自己是php小白,发现最后是因为用了EditPlus做的修改,然后导致在默认保存时产生了编码错误.默认是UTF-8 + BOM,选择UTF格式并保存下就可以了 ...

  3. (转)PHP5使用cookie时报错 cannot modify header information - headers already sent by (......)

    转自:http://blog.csdn.net/buyingfei8888/article/details/8899797 运行有警告Warning: Cannot modify header inf ...

  4. 彻底杜绝warning: Cannot add header information - headers already sent in......

    彻底杜绝warning: Cannot add header information - headers already sent in...... 标题:彻底杜绝warning: Cannot ad ...

  5. Cannot modify header information问题的解决方法【新浪云经常遇到的错误】

    我做了一个统一的出错提示函数,在函数执行里面,先处理出错的地址写入cookie以方便用户登陆以后可以直接跳转到要执行的这个页面,可是发现在服务器上测试时,竟然提示本地没有出现的错误: Warning: ...

  6. Cannot modify header information的解决方法

    昨晚在转换许愿板编码的时候,有一个页面需要在head中申明utf-8的编码,但是这与程序中的一处header产生了冲突.google了一下,找到几种解决方法,翻译整理一下: If you got th ...

  7. php出现Cannot modify header information问题的解决方法

    php出现Cannot modify header information问题的解决方法 参考文章: (1)php出现Cannot modify header information问题的解决方法 ( ...

  8. 成功解决WARNING: Ignoring invalid distribution -illow (E:\program files\python\python36\lib\site-package

    成功解决WARNING: Ignoring invalid distribution -illow (E:\program files\python\python36\lib\site-package ...

  9. 成功解决WARNING:tensorflow:From :read_data_sets (from tensorflow.contrib.learn.python.learn.

    成功解决WARNING:tensorflow:From :read_data_sets (from tensorflow.contrib.learn.python.learn. 目录 解决问题 解决思 ...

最新文章

  1. 工业机器人什么情况下会出现奇点_【怎么解释机器人奇点造成的结果?】-工业-有米下载-6miu.com...
  2. 【深度学习】NetAug(网络增强)—Dropout的反面
  3. Python Django 多对多表设计
  4. 项目进行JVM调优 Jconsole
  5. “程序员千万不要选全栈开发”
  6. 负载均衡轮询算法和服务器性能,负载均衡算法
  7. NOIp2018集训test-10-20 (bike day6)
  8. 什么是软件测试中的探索性测试(完整指南)(一)
  9. Verilog语言基础
  10. 零基础学平面设计是自学好还是报班好?
  11. 小饭馆促销活动流程,小饭馆网络营销方案
  12. python md5计算
  13. 以计算机为主题的英语作文范例,英语作文范例,一篇万能英语作文范文。
  14. Python大数据处理库 PySpark实战 总结四
  15. HTML5期末大作业:基于HTML+CSS+JavaScript校园文化企业网站模板【学生网页设计作业源码】
  16. CSP202109-4 收集卡牌
  17. 一起来了解木马的七种分类
  18. ubuntu windows远程桌面 xfce4
  19. Effective Java读书笔记---四、类和接口
  20. Android工程师技术话术

热门文章

  1. webservice接口_webservice服务器端发票识别接口
  2. 876. 链表的中间结点
  3. Leetcode226. 翻转二叉树(递归、迭代、层序三种解法)
  4. python图例位置_Python | 图例位置
  5. MPEG的完整形式是什么?
  6. c++stl和std_std :: replace()函数以及C ++ STL中的示例
  7. 面型对象 (包package)
  8. N Queen(代码、分析、汇编)
  9. ffmpeg 命令添加文字水印
  10. c和汇编混合编程----shellcode----弹出计算器