2015-11-02 71 views
-4

下面的代碼顯示我「111」和「222」。但不會將我重定向到任何地方。我現在能做什麼?重定向和標題不起作用

<?php 
echo "111"; 
header("Location: http://www.google.com"); 
echo "222"; 
return Redirect::to('http://www.google.com'); 
echo "333"; 
?> 
+5

http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php檢查此鏈接 –

+0

可能重複[如何解決「頭已發送」錯誤PHP](http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php) – Epodax

+0

使用ob_start();在你的代碼的開頭 – 2015-11-02 14:17:19

回答

0

你不能有標題標籤設置之前任何輸出,所以頭後刪除echo語句,並退出腳本:

header("Location: http://www.google.com"); 
exit; 
+0

謝謝,但仍然沒有任何反應 – divHelper11

+0

你發佈腳本的完整腳本? – Ashley

1

兩件事情......

你需要把你的exit頭之後( 「位置:...」) 例子:

header("Location: http://www.google.com"); 
exit; 

但更重要的是,如果您已使用echo寫入輸出緩衝區,您的標題將不會重定向。

+0

謝謝,但仍然沒有任何反應 – divHelper11

+1

請注意,在使用header()之前,您不能有任何輸出。所以沒有回聲,var_dump,沒有或任何以上的PHP標記,沒有包括標題,什麼都沒有。 – Ivar

-1

這不起作用,因爲您已經將數據發送到客戶端(echo)。要麼把你的頭,你什麼呼應前,或緩衝這樣的:

ob_start(); 
echo "111"; //Note: You're missing a semicolon here 
header("Location: http://www.google.com"); 
echo "222"; 
$obj = Redirect::to('http://www.google.com'); 
echo "333"; 
ob_flush(); 
return $obj; 

To Continue Reading... 希望這有助於!

+0

return語句將跳出這一點,ob_flush()將永遠不會到達 – bashaus