1

我有这个错误,我已经尝试修复它很长时间了。它似乎是凭空出现的,因为它所在的页面昨天运行良好。

错误是:

警告:无法修改标头信息 - 标头已由 /var/www/dev.racommerce.com/includes/header.php:97 中的 /var/www/dev.racommerce.com/cart.php 发送第 44 行

第 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"); 

我一直在研究其他答案的解决方案,例如如何修复 PHP 中的“标头已发送”错误,但我很难理解它们或在我的代码中实现它们。

有人可以帮我解决这个问题吗?

4

3 回答 3

4

您不能在标头之前放入任何内容,例如 echo 或关闭 php 标记。如果你把它放在开头,你可以修复它

ob_start();

最后

ob_end_flush();

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

于 2013-06-21T11:44:59.667 回答
4

修改标头前不能输出html

ob_start()在第一行和ob_flush最后一行使用

于 2013-06-21T11:45:17.533 回答
0

ob_start 不能解决您的问题。这是一件坏事。尝试在输出回显后编写您的应用程序而无需设置标题。您将编写更好的应用程序。享受 ;) D.

于 2013-06-21T12:07:45.867 回答