Loading...

Cannot modify header information

2009-03-28 19:19:19 发表于PHP, 网站技术 本文链接: Cannot modify header information

请php熟练者略过此文。

既然你打算继续往下看,说明你不熟悉php或者正在入门,那么我就用最简单(不会假装高深的搬出http 协议中header的解释,其实我也不会)的说说出现这样问题的原因:

当php程序出现cannot modify header information错误的时候,从cannot modify header information的字面不难理解,表示程序无法发送header信息,一般的出错信息完整的应该是类似Warning: Cannot modify header information – headers already sent by的提示。那么下面几种情况会出现Cannot modify header information

  1. 单独的php文件session_start()之前有echo print等等输出;
  2. 在setcookie之前有echo print等等输出;
  3. 在set cookie和session_start之前有包含的文件,而这个包含的文件有输出;
  4. 在set cookie和session_start之前有包含的文件,而这个包含的文件为html或者含有html(包括<?php ?>外面的空格);
  5. 程序文件<?php之前不小心打了一个空格;
  6. 带有bom的utf8编码文件,因为有bom,所有在<?php之前其实有编辑器看不到的输出;

总之,出现这个问题的根源只有一个:那就是在session_start和setcookie之前有输出的都会出现Cannot modify header information的错误。无论是程序本身echo出来的、被include 进来的程序echo的还是php代码之外的html存在空格它们统统都是输出。

所以你若是使用wordpress,第一次安装进入后台,发现Cannot modify header information之类的错误,首先要要检查的就是wp-config.php文件中<?php之前和?>之后是不是不小心打了换行或者空格符号?是的话,则删除之。检查wp-config.php是不是utf8编码?管他是不是,用编辑器(下载一个editplus的试用版本)打开,另存为的时候,选择UTF-8再次覆盖保存即可。

标签:
发表于 2009-03-28 19:19:19 目录:PHP, 网站技术 [RSS 2.0] 你可以发表评论, 或者从您的网站 trackback
  • 相关阅读
  • homezz 美国专业主机商
    已经有7位大师动手指导 拒绝低俗
    • 1楼 epile 在2009.03.28 20:02发表评论如下: 回复

      最近总有沙发..觉得第六种情况初学者比较常碰到..应该放最前面..

      • 1楼附属品 江东 在2009.03.28 20:07发表评论如下: 回复

        进了一个QQ群,发现初学者还未习惯utf8,所以未必如此哦

        • 1楼附属品 epile 在2009.03.28 20:08发表评论如下: 回复

          很想知道写utf8的php代码和写gb2312的在书写上有什么差异?

          • 1楼附属品 江东 在2009.03.28 20:11发表评论如下: 回复

            没差异,在windows下utf8编码保存的时候得特别指定文件类型,gb2312的话不用指定,保存即可。

      • 2楼 langzi 在2009.03.28 22:47发表评论如下: 回复

        偶就是在江东指导下扑腾一下午安装wp,最后出现这个页面,束手无策,找江东给我处理的。

        • 3楼 Fengshen.Name 在2009.03.29 05:58发表评论如下: 回复

          江东哥的博客越来越脱离我们这些底层群众啦 O(∩_∩)O哈哈~
          看不懂

          • 4楼 bigCat 在2009.04.03 23:10发表评论如下: 回复

            推荐notepad++ 免费开源
            转编码超方便
            代码高亮,块高亮,灰常舒服

            评论分页: 1
            (Required)
            (Required, not published)
            如果留言未显示无需重复留言,我将为你恢复!