-1

私はいくつかの検証をPHPで書き出しており、送信ボタンが押された場合にのみフィールドを検証したいので、以下を追加しました:

if (isset($_POST['submit']))

私のコードの周りの行ですが、今ではまったく検証されていないようです。行を追加する前に、それはうまく検証されましたが、フォームが開かれるとすぐに検証されました。送信ボタンが押されます。これが私のコードです(私はPHPにかなり慣れていないので、おそらく見栄えがします):

<?php

if (isset($_POST['submit'])) {

    $post = $_POST["post"];
    $msgp = "";

    if (empty($post)) {
        $msgp = '<span class="error"> Please enter postcode</span>';
    }
    if (!empty($post)) {
        if(!is_numeric($post)) {
            $msgp = '<span class="error"> Data entered was not numeric</span>';
        } else if(strlen($post) != 4) {
            $msgp = '<span class="error"> Postcode must be 4 digits in length</span>';
        } else {
            $msgp = '<span class="error> Please enter a postcode</span>';
        }
    }
}
?>

フィールド自体は次のとおりです。

<form method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>" id="eoi">
    <input type="text" id="post" name="post"><?php echo $msgp; ?></td>
</form>

私のエラーを修正するための助けをいただければ幸いです。私はしばらくこれを見つめてきました。

4

1 に答える 1

0

このようなフォームに別の入力フィールドを追加します...

HTML

<form method="POST" action="dowhatever.php" id="eoi">
     <input type="text" id="post" name="post" value="<?php if(!empty($msgp)) { echo $msgp; } ?>" />
     <input type="submit" name="submit" id="submit" value="submit" />
</form>

変数$_POST["sumbit"]が設定されているかどうかを確認しますが、フォームに「送信」という名前のフィールドがなかったため、設定されないため、スクリプトはチェックに合格し$_POST["submit"]ませんでした。

于 2013-05-16T15:18:44.070 に答える