我有这个错误,我一直试图修复它多年。它出现在看似无处不在的地方,因为它所在的页面昨天工作正常。
错误是:
警告:无法修改标题信息 - 已经发送的标题(/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,但我很难理解它们或在我的代码中实现它们。
有人可以帮我这个吗?
答案 0 :(得分:4)
你不能把任何东西放在标题之前,如echo或关闭php标签。如果你把它放在开头就可以解决它
ob_start();
最后
ob_end_flush();
这会将所有内容都放入缓冲区。
答案 1 :(得分:4)
在修改标题
之前无法输出html在第一行使用ob_start()
,在结束行使用ob_flush
答案 2 :(得分:0)
ob_start不是解决您问题的方法。做一件坏事。在输出回显后,尝试编写应用程序而无需设置标题。 您将编写更好的应用程序。 请享用 ;) d。