-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 回答