2013-05-16 106 views
-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> 

上固定我的错误,任何帮助,将不胜感激,我有一直盯着这个。

+2

你错过了提交按钮,不会有任何'isset($ _ POST ['submit'])' – Fabio

回答

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"]永远不会被设置。