2013-06-21 47 views
1

我有这个错误,我一直在尝试修复它的历史。它看起来似乎毫无用处,因为它的页面昨天工作正常。PHP错误“无法修改标题信息”

的错误是:

警告:不能更改头信息 - 头已经发出的(输出开始/var/www/dev.racommerce.com/includes/header.php:97)/无功/网络/ dev.racommerce.com/cart.php上线44

在header.php文件的代码线97上的是:

<?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> 
<?}?> 

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

header("location: cart.php"); 

我一直在研究从其他的答案,如How to fix "Headers already sent" error in PHP解决方案,但我在努力理解他们或在我的代码执行。

有人可以帮我这个吗?

+2

在发送标题之前已经有输出。标题信息应该始终在任何html输出之前发送。 – Perry

+0

修改标题之前,不能向浏览器输出任何内容。 – budwiser

+0

@Rikesh我已经在我自己的 – Kevlar

回答

4

你不能在header之前加入任何东西,比如echo或者关闭php标签。如果你把一开始

ob_start(); 

,并最终

ob_end_flush(); 

这将会把一切变成一个缓冲区可以修复它。

+0

谢谢,确实为我修复:)非常感谢。唯一令人困惑的是我今天很想编辑这两个文件,但是这个错误今天早上才出现。不用担心,再次感谢。我会尽我所能接受 – Kevlar

+0

@Kevlar即使是一个简单的**空格**也算作输出。 –

4

你可以在端线

+0

谢谢你的帮助,我很感激。 jcubic只是把你带到那个帖子:) – Kevlar

+0

@Kevlar你的欢迎 – Cooper

0

ob_start修改标题

使用ob_start()在第一线和ob_flush之前不输出HTML是不是你的问题的解决方案。这是一件坏事。尝试编写应用程序,而无需在输出回显后设置标题。 你会写出更好的应用程序。 Enjoy;) D.

相关问题