2011-08-24 83 views
2

有人知道爲什麼我的header()不重定向嗎?PHP header()不起作用

我的腳本的最後一部分是:

header("location: test.php"); 
    die('died'); 

它寫道:

died. 

:(((

應該有它死之前重定向,但它不會。

你有什麼想法?

+0

之前,我該怎麼辦呢?只需點擊是或否的反饋? – szatti1489

+2

在PHP中打開error_reporting,error_level等...。你很可能會得到一個「無法發送標題 - 輸出已經開始在XXX行」的錯誤。 –

+1

@mario這不是什麼downvotes的意思。因爲你喜歡鏈接到常見問題解答,這裏也有一個適合你的問題... [下調應該保留在極端情況下。這並不意味着它可以代替通信和編輯。](http://stackoverflow.com/privileges/vote-down)哦,我會刪除我的答案,這實際上幫助他解決了他的問題,但違反了標準。 –

回答

9

這可能是您在調用header()您正在輸出一些文本/ HTML到瀏覽器,這是一個禁忌。如果在調用之前發送單個輸出空間,您的header()調用將被忽略。

換句話說,在向用戶顯示任何東西之前,您的header()代碼需要位於腳本的開頭。如果仍然不起作用,請確保您的php標記之外沒有任何空格或其他空白。

2

你應該爲你的位置標頭使用完全合格的地址,輸出任何內容:

header('Location: http://example.com/test.php'); 
die(); 

而且確保沒有其它內容被設定頭之前發送的,否則它不會被作爲頭文件將被髮送到瀏覽器。

3

也許在header之前有一些看不見的輸出,它會阻止設置header,並且信息警告被抑制。

另外位置的頭應該包含一個絕對URL:

// Show Errors 
error_reporting(E_ALL); 
ini_set('display_errors','On'); 
// Redirect 
header('Location: http://example.com/path/test.php'); 
die('redirect'); 
0

location:應該是Location:

而且......

  • 滾動到該頁面的頂部。
  • 點擊您的帳戶名稱。
  • 點擊隨機問題
  • 勾隨機答案
  • 回來找更多serieus回答

好運。

+0

親愛的MattK,當你編寫一個長長的小時和長長的代碼創建,並且你的代碼之前的演示文稿和課程錯誤報告被關閉,f ..頭沒有重定向通過一個f ...回顯空字符串...你在這種情況下做什麼? – szatti1489

0

我也被困在這個錯誤上,並試圖用error_reporting(E_ALL), 顯示錯誤,但這並不適用於我。信息:我在Strato上使用託管服務。

所有這一切的解決方案都由Floem解答,感謝這個偉大的設置。

如果你沒有得到的情況下,錯誤你把error_reporting(E_ALL)一次, - >必須另加ini_set('display_errors', 'On'),迫使PHP來顯示你所有的錯誤。這解決了我的錯誤問題

然後有可能讀出,爲什麼PHP不會讓你的重定向。 我的一個提示:我建議你建立一個小的重定向類,如本視頻所示:Redirect Class for easy use,如果你打算使用這個重定向比平常更多。

0

只需通過刪除php標籤之前的所有東西來解決它。

php的標籤之前刪除空格

標籤之前選擇所有,然後按刪除按鈕。

0

如果包含'header()'指令的文件需要直接/間接地在HTML文件中,那麼指令{include'someFile'}應該是該HTML文件的第一行。放置在您的HTML文件的頂部該指令,如圖this image.

0

添加

ob_start();

header("location: test.php");