“错误:Cookies因预料之外的输出被阻止”的解决方法

前几天最后一次更新后,由于没有时间就没再管理博客了。然而今天再访问博客后台时,却出现了“错误:Cookies因预料之外的输出被阻止”的错误信息:

wpcookie

无视错误,输入用户名和密码后尝试登陆却提示用户名或密码错误,无奈点击忘记密码,邮箱收到了邮件,点击链接后却提示如下错误:

Warning:Cannot modify header information – headers already sent by(Output started at /home/public_html/wp-config.php:1) in /home/public_html/wp-includes/pluggable.php on line 1178

看来是真的有问题了,

点击“此文档”后调到wordpress.org的一个英文页面,几次辗转终于有了一个中文页面:

官方帮助文档链接:http://codex.wordpress.org/zh-cn:%E9%94%99%E8%AF%AF%E9%97%AE%E9%A2%98%E8%B7%9F%E8%B8%AA%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E8%A7%A3%E7%AD%94

官方帮助文档内容如下:

怎样解决Headers already sent的警告问题?

问题描述: 在浏览器中出现一个警告信息,内容如下:

Warning: Cannot modify header information - headers already sent by (output started at

原因与解决方法:

这通常由开放的<?php标签前或闭合的?>标签后的空格、新段落等多余内容引起,尤其是在wp-config.php文件中。在其它文件中也可能出现类似情况。因此我们需要仔细查看错误信息,信息中会列出出现该错误的文件的文件名(参见下文“解析错误信息”)。最好的方法是用最近一次备份中的文件或WordPress最新版本中的文件替换相应含有错误信息的文件,如果没有可替换文件,请执行以下操作:

我们看不到任何信息并不表示PHP也看不到任何信息:

  1. 下载错误信息中提到的文件
  2. 在常见的文本编辑器不要用Mircosoft Word或类似文件,而是记事本、BBEdit等)中打开文件
  3. 检查文件开始部分的字符是否<?php
  4. 检查文件结尾部分的字符是否?>

要确保文件结尾部分没有问题,请:

  1. 将光标放在 ? 和 >之间
  2. 按下键盘上的DELETE键
    • MAC用户请注意:计算机上的”DELETE”键会删除光标右侧的字符。
  3. 继续按DELETE键
  4. 保持至少15秒
  5. 输入>并
  6. 保存文件,不再按任何键
  7. 若按下其它任何键,问题会再度出现

同时检查文件的编码方式,若文件以BOM UTF-8形式编码,BOM会被看成一个启动输出结果的字符。

解析错误信息:

若错误信息的内容为:Warning: Cannot modify header information - headers already sent by (output started at /path/blog/wp-config.php:34) in /path/blog/wp-login.php on line 42,那么问题出在wp-config.php文件的第34行(line #34),而不是在wp-login.php文件的第42行(line #42)。这种情况下, line #42 of wp-login.php也是受害者,受到line #34 of wp-config.php中多余空格的影响。

若错误信息的内容为:Warning: Cannot modify header information - headers already sent by (output started at /path/wp-admin/admin-header.php:8) in /path/wp-admin/post.php on line 569,那么问题出在line #8 of admin-header.php而非#569 of post.php。这种情况下,line #569 of post.php也是受害者,受到 line #8 of admin-header.php中多余空格的影响。

注意!!:根据错误信息,错误的文件位于wp_config.php,而不是/wp-includes/pluggable.php,在官方文档中也有强调,也就是说,错误信息中的”Output started at”后面的文件才是有错误的文件。

找到错误所在后,立即前往修改wp-config.php。从错误信息中可以得知,错误位于第1行,也就是”<?php”,根据官方帮助文档,应该是这行或下一行出现了空行或多余的空格。但是经过仔细观察,并没有发现错误所在,只好把”<?php”删除重新输入一次,就恢复正常了。

wpcookie1

 

3 thoughts on ““错误:Cookies因预料之外的输出被阻止”的解决方法

发表评论

电子邮件地址不会被公开。 必填项已用*标注