2013-07-09 17 views
0

如果想有一個單一的PHP文件,根據不同的條件reirect不同的頁面說取決於後的結果..使用if-else條件在同一個PHP中使用多個頭文件是否有效?

if(condition 1) { 
    header("Location: page1.php"); 
    exit; 
} 
else if(condition 2) { 
    header("Location: page2.php"); 
    exit; 
} 
else { 
    header("Location: page3.php"); 
    exit; 
} 
+0

你面臨着哪些問題? – JimL

+0

只要沒有空白輸出,這應該工作。 –

+0

沒有問題,但不確定這個權利 – user1887239

回答

1

抽菸!

您可能想要確保首先沒有發送標頭。您可以使用headers_sent這個

if (!headers_sent()) { 
    // ... 
} 

來處理這方面的一個很好的方法可能是

function redirect_to($location) { 
    if (headers_sent($filename, $line)) { 
    trigger_error("Headers already sent in {$filename} on line {$line}", E_USER_ERROR); 
    } 
    header("Location: {$location}"); 
    exit; 
} 

// you can now use it like this 
if(condition 1) { 
    redirect_to("page1.php"); 
} 
else if(condition 2) { 
    redirect_to("page2.php"); 
} 
else { 
    redirect_to("page3.php"); 
} 
0

假設你condition Nif語句是有效的,有什麼不對的具有不同的頁眉針對不同的情況。

0

是的,只要在任何header()調用之前沒有輸出任何內容。

0

是的,只要您在調用該函數之前不要在頁面上回顯任何內容,就應該可以工作。只要你不在頭文件功能的上游打印任何東西,你就可以擁有儘可能多的PHP。

相關問題