2013-05-16 105 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"]永遠不會被設置。