2011-08-31 71 views
-3

可能重複:
Warning: Cannot modify header information - headers already sentPHP頭已經發送?

有你遇到PHP的頭已經發送,即使你已經顯示內容到瀏覽器?

。概念證明。

test.php的截圖裝載test.php的後

<?php 
echo "header is trolling"; 
header('Location: http://google.com'); 
?> 


http://i51.tinypic.com/2gvj6gi.png

它顯示在第一次(我是一個隨機頁) 我試圖捕捉找不到對象'從谷歌傳輸數據',但它加載得如此之快大聲笑

如果你會問我的phpinfo只是告訴我w帽子部分發布:)

只是爲了澄清我沒有得到'頭已發送'錯誤我知道如何處理。我實際上期待着那個錯誤,但它沒有出現

+3

我不知道你在問什麼,你能澄清? –

+0

我在問是否唯一一個遇到這個問題。我在朋友的電腦上試了一下。但它表示標題已發送 – kapitanluffy

+0

看起來像沒有人得到你的問題。我希望他們再讀一遍。 – sidyll

回答

2

頁眉在發送任何實際的文檔體之前立即發送,如。 通過呼應,你說:

嘿,我完成添加我的所有標題,讓我們移動到文檔內容!所以開始發送標題給用戶!

所以後來當您嘗試,並添加標題,你不能因爲你已經把他們當你做

echo "header is trolling"; 

這不是一些bug,這是完全正常的。想想看,你必須首先發送標題,因爲,如果你正在瀏覽你的文檔會發生什麼?如何在不首先發送標題的情況下告訴客戶端。

+0

所以你的意思是即使我把回聲上面的標題。標題(Location ..)會先被髮送? – kapitanluffy

+0

不,我的意思是它** CANT **發送,因爲所有頭文件已經發送。有很多標題..內容類型等等。客戶需要的東西,以便知道期望的文檔類型。所有這些標題必須在服務器輸出**任何**之前發送。甚至只有一個空白。 – Layke

+0

@Layke再次讀這個問題 – sidyll

0
<?php 
ob_start(); 
echo "header is trolling"; 
ob_clean(); 
header('Location: http://google.com'); 

?> 
+0

我不需要那個。它甚至不會說頭已經發送 – kapitanluffy