2013-10-04 60 views
0

如何在發送標題後跳轉到其他頁面?如何在發送標題後跳轉到其他頁面?

我已經在我的模板文件所著的一些代碼,我想用PHP來跳轉到其他頁面時,一些條件是真實的,但我不能在這裏使用頭命令,標題信息已經在其他PHP文件發送在這個模板文件之前。那我現在怎麼跳到其他網址呢?只有使用js的方式?

Warning: Cannot modify header information - headers already sent by ... 
+3

重寫代碼,以便在發送標頭之前評估條件*。這是更乾淨的PHP。 –

+0

確保至少接受一個答案,如果它適合你。 – CP510

回答

2

使用輸出緩衝和標題清除來實現此目的。

ob_start() 
... 
if (!headers_sent()) { 
    foreach (headers_list() as $header) 
    header_remove($header); 
} 
ob_flush_end() 

未經測試,但給它一個鏡頭。

1

你有兩個選擇。

  1. 在發送任何輸出之前移動您的標題位置。
  2. 使用客戶端重定向,你有兩種方法可以做到這一點

A /使用JavaScript

window.location = "http://www.yoururl.com"; 

B /使用元

<META http-equiv="refresh" content="5;URL=http://www.yourlink.com/new-link"> 

最好在這裏How to fix "Headers already sent" error in PHP

解決方案
1

從CP510 anaswer是好的。另一種方法是使用JavaScript重定向頁面。要引用Ryan McGeary answer,您可以執行以下任一操作:

// similar behavior as an HTTP redirect 
window.location.replace("http://stackoverflow.com"); 

or 

// similar behavior as clicking on a link 
window.location.href = "http://stackoverflow.com"; 
相關問題