0

PHPコードに問題があります。

else echo "Check it again!";フォーム(入力ボックス)にデータを入力し、それが無効でない限り、表示したくありません。しかし、ページをロードすると、ボックスの上にエラーが表示されます。

<?PHP
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    mysql_query("INSERT INTO newsletter (email) VALUES('$email')") or die(mysql_error());
        echo 'You have registered your E-Mail address to our database! You will now receive regular updates on the progess!';
    }else{
        echo "Check it again!";
}
?>

<form name="newsletter" method="post" action="<?PHP $_SERVER['PHP_SELF']?>">
<input type="text" name="newsletter" id="newsletter">
<input type="submit" value="SUBMIT!">
</form>
4

2 に答える 2

2

これを試して :)

<?PHP
if($_SERVER["REQUEST_METHOD"]=="POST"){
    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
        mysql_query("INSERT INTO newsletter (email) VALUES('$email')") or die(mysql_error());
            echo 'You have registered your E-Mail address to our database! You will now receive regular updates on the progess!';
        }else{
            echo "Check it again!";
    }
}
?>

それ以外の

<?PHP

 if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    mysql_query("INSERT INTO newsletter (email) VALUES('$email')") or die(mysql_error());
    echo 'You have registered your E-Mail address to our database! You will now receive regular updates on the progess!';
    }else{
      echo "Check it again!";
    }
}

?>

編集の背後にあるロジック: メールを確認するか、「もう一度確認してください!」と出力します。フォームが送信された場合のみ。ここで、フォームが送信されたかどうか、またはこれがページの最初の読み込み (または単純な更新) であるかどうかを確認しないと、挿入またはエラー表示が発生します。そして、私たちはそれを望んでいません:)

于 2013-07-08T23:06:02.587 に答える
0

これは、私が好むスタイルの @MuhammedHedayet の回答に代わるものであり、必要な場合にのみチェックします。どちらも完全に動作するはずです:

<?PHP
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    mysql_query("INSERT INTO newsletter (email) VALUES('$email')") or die(mysql_error());
        echo 'You have registered your E-Mail address to our database! You will now receive regular updates on the progess!';
    } else if ($_SERVER["REQUEST_METHOD"]=="POST"){
        echo "Check it again!";
}
?>

<form name="newsletter" method="post" action="<?PHP $_SERVER['PHP_SELF']?>">
<input type="text" name="newsletter" id="newsletter">
<input type="submit" value="SUBMIT!">
</form>
于 2013-07-08T23:25:09.660 に答える