2013-06-21 45 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.

相關問題