2015-10-14 88 views
1

我想重定向我的網頁後成功的用戶登錄使用PHP頭,但我無法重定向頁面。PHP的重定向不起作用

echo '<span style="color:#E02F2F;text-align:center;font-size:25px;padding-left:38%;">Username or Password is valid</span>';  
header('Location:http://example.com/templates/georamble/index.php'); // Redirecting To Other Page 

我的登錄頁面位於「georamble」文件夾內。我錯在哪裏?

+0

您是否嘗試在標題後保留'exit;' – akashBhardwaj

+0

同一個項目的其他頁面? – Tushar

+5

'echo' +'header'不起作用。如果您已經將輸出發送到客戶端,那麼您的標題已發送,並且不能再更改它們。要麼使用輸出緩衝,要麼在發送輸出之前設置標題。如果您想要/需要顯示_「成功登錄」_消息,則可以在要重定向到的頁面上執行此操作,並使用會話來跟蹤此類事情。 [閱讀所有關於它在這裏](http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php/8028987#8028987) –

回答

2

如果echo語句在標題之前使用,所以不能重定向頁面。所以你也可以試試這個。 echo <script> window.location ='url'</script>

+0

重要的是要注意,在發送任何實際輸出之前必須調用header()(在PHP 4及更高版本中,可以使用輸出緩衝來解決此問題): –

+0

它對我有很大的幫助,謝謝 – Nayana

+0

以上不正確解決方案,但用這個解決了你的問題。 –

0

您可能會收到錯誤信息,因爲您在重定向之前正在打印信息。你的用戶永遠不會看到這些信息。

A similar question and answer.

於是,經過你的腳本執行成功意味着登錄再通,如果你想顯示某種類型的信息在你的頭參數重定向。因爲你只是迴應有效的登錄,所以我認爲這不是必須的。你做得對,在重定向之前不能在屏幕上打印任何東西。

+0

我不需要在重定向之前打印anu measaage。這僅用於測試靜音 – Nayana

+0

然後,只需將echo語句取出即可。應該解決你的問題。 :)刪除了 – Chris

+0

。仍然是同樣的問題:( – Nayana

0

您不能在標題前使用回顯。爲了克服這種情況,你可以利用ob_start()ob_end_flush()函數功能如下的:

ob_start(); 
echo '<span style="color:#E02F2F;text-align:center;font-size:25px;padding-left:38%;">Username or Password is valid</span>'; 
header('Location:http://example.com/templates/georamble/index.php'); // Redirecting To Other 
ob_end_flush(); 

希望這有助於你出去。

+0

它不工作 – Nayana

+0

確保在php.ini中output_buffering值是否爲0 –

+0

爲什麼要打開輸出緩衝以重定向到另一頁? –