提交后验证不起作用?

时间:2013-05-16 15:11:46

标签: php validation submit

我在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>

任何有关修复我的错误的帮助都会受到赞赏,我一直盯着这个。

1 个答案:

答案 0 :(得分: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"]以查看它是否已设置但您在表单中没有名称为'submit'的字段,因此您的脚本永远不会通过检查,因为$_POST["submit"]会永远不会被设定。