PHP错误“无法修改标头信息”

时间:2013-06-21 11:41:31

标签: php html http-headers location

我有这个错误,我一直试图修复它多年。它出现在看似无处不在的地方,因为它所在的页面昨天工作正常。

错误是:

  

警告:无法修改标题信息 - 已经发送的标题(/var/www/dev.racommerce.com/includes/header.php:97中的输出)/var/www/dev.racommerce.com/cart第44行的.php

第97行header.php文件中的代码是:

<?for($i = 0; $i < $count; $i++) 
{?> 
  <li><a class="dropDown" href="<?="http://" . $_SERVER['HTTP_HOST'];?>/products.php?cat=<?=$result[$i]['categoryID']?>"><?=$result[$i]['categoryName']?></a></li> 
<?}?>

并且第44行的cart.php文件中的代码是:

header("location: cart.php"); 

我一直在研究其他答案的解决方案,例如How to fix "Headers already sent" error in PHP,但我很难理解它们或在我的代码中实现它们。

有人可以帮我这个吗?

3 个答案:

答案 0 :(得分:4)

你不能把任何东西放在标题之前,如echo或关闭php标签。如果你把它放在开头就可以解决它

ob_start();

最后

ob_end_flush();

这会将所有内容都放入缓冲区。

答案 1 :(得分:4)

在修改标题

之前无法输出html

在第一行使用ob_start(),在结束行使用ob_flush

答案 2 :(得分:0)

ob_start不是解决您问题的方法。做一件坏事。在输出回显后,尝试编写应用程序而无需设置标题。 您将编写更好的应用程序。 请享用 ;) d。