2012-04-30 14 views
3

フォームでスパムチェックをしています。以下のコードは、ローカルホスト上で動作する必要があります(trueの場合はgoogle.comにリダイレクトされます)。ただし、プロダクションサーバー上にはありません(スクリプトの残りの部分を実行し、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_dumpをやったし、それは私が間違って1969-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

完璧、ありがとう! –

関連する問題