2012-04-30 42 views
3

我做了一些垃圾郵件窗體上的檢查。下面的代碼工作,因爲它應該在我的本地(重定向到google.com,如果爲true),但是,它並沒有當它是在生產服務器上(執行腳本的休息和不重定向到Google.com)。

if('POST' == $_SERVER['REQUEST_METHOD']) { 
    if ($_POST["bait"]!='' || $_POST["date"] == "12/31/69" || trim($_POST["date"] == "1969-12-31")) { 
     header("location: http://www.google.com"); 
    } else { 
     //Process form here 

我已經做了一個$_POSTvar_dump1969-12-31

我在做什麼錯?

回答

4

發送位置標頭後,您應該exit;,以防止其餘腳本執行。

例如

if('POST' == $_SERVER['REQUEST_METHOD']) { 
    if ($_POST["bait"]!='' || $_POST["date"] == "12/31/69" || trim($_POST["date"] == "1969-12-31")) { 
     header("location: http://www.google.com"); 
     exit; 
    } else { 
     // process form here 
    } 
} 

重定向已發送,但您也繼續輸出請求的其餘部分,這種情況下行爲可能是未定義的。

+0

完美,謝謝! –