【问题标题】:Cannot modify header information - headers already sent by ... Error [duplicate]无法修改标头信息 - 标头已由...发送错误 [重复]
【发布时间】:2011-10-16 17:53:39
【问题描述】:

可能重复:
PHP error: Cannot modify header information – headers already sent

您好,即使您在其他项目中使用完全相同的文件并且它工作正常,我也会收到此错误。该项目是在 FB 新 API 实施后设置的,9 月底后的所有更改是否会成为问题?

我的文件:

<?php echo '<?xml version="1.0" encoding="UTF-8"?>'."\n"; ?>
<users xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<?php
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Thu, 1 Jan 1970 00:00:00 GMT");
include_once 'config.php';
$con = mysql_connect($db_ip,$db_user,$db_pass);
.
.
.
.
while ($row = mysql_fetch_assoc($result)) {
?>
    <id>
    <image>http://mywebsite/root/xxx-game-fb/proxy.php?url=<?php echo urlencode("http://graph.facebook.com/".$row['fbid']."/picture?type=square"); ?></image>
    <place><?php echo $position; ?></place>
    <name><?php echo $row['name']; ?></name>
    <score><?php echo $row['score']; ?></score>
</id>
<?php
$position++;
}
?>
</users>

我将其用作 Flash AS3 游戏的输入。它创建一个包含用户的表并按顺序设置它们。 Flash 也会在提取此 xml 文件的函数中引发错误。 有谁知道这里可能有什么问题? 请帮忙。

【问题讨论】:

    标签: php xml header


    【解决方案1】:

    没有阅读有关header 的文档,并且在调用该方法之前无法输出任何信息,对吧?

    请记住,header() 必须在发送任何实际输出之前调用,可以通过普通 HTML 标记、文件中的空行或 PHP 进行

    要么先使用标头,要么在无法避免的情况下使用某种形式的输出缓冲。


    文件的前 5 行应变为:

    <?php
      header("Cache-Control: no-cache, must-revalidate");
      header("Expires: Thu, 1 Jan 1970 00:00:00 GMT");
      echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
    ?>
    <users xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    

    请注意,header() 现在在任何内容被回显/输出之前被调用。

    【讨论】:

    • 感谢布拉德的回答,我试过了,没有成功
    • @LukaszSzczepanski:您在其他地方有 header 电话,当时也有干扰。
    猜你喜欢
    • 1970-01-01
    • 2012-03-31
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 2012-06-19
    • 2011-11-14
    相关资源
    最近更新 更多