表單驗證相關

2015-12-15

建立一個function來進行驗證動作 

//驗證函式
function validate_form(&$frm, &$errors) {
        //一般用驗證
        if (empty($frm["username"])) {
            $errors->username = true;
            $errors->username_msg = "<span>請輸入帳號</span>";
            array_push($validate,false);
        }

       if (!preg_match("/^[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[@]{1}[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[.]{1}[A-Za-z]{2,5}$/", $frm["email"])) {
            $errors->email = true;
            $errors->email_msg = "<span>請輸入的信箱格式有問題</span>";
            array_push($validate,false);
        }

        return $validate;
 }

//寫出驗證錯誤訊息
function err($msg,&$errorvar) {
    if (isset($errorvar)) {
        echo "<font color=#ff0000>".$msg."</font>";
    }
}

主程式進行送出動作時進行資料驗證

$frm = $_POST;
$validate = in_array(false,validate_form($frm, $errors));
        
//先驗證欄位
if (!$validate) {
       //驗證通過後的動作
}else{
       //驗證未通過的動作

本文中的表單

<form name="entryform" method="post" action="/">                                            
      <input type="text" name="username" value="<?php echo $frm["username"] ?>" placeholder="帳號" />
      <?php echo err($errors->username_msg,$errors->username)?>
     
      <input id="email" type="text" name="email" value="<?php echo $frm["email"] ?>" placeholder="Email"  />
      <?php echo err($errors->email_msg,$errors->email)?>
     
      <input type="submit" value="送出" />
</form> 

由於表單中有加入php送出表單後的資料,所以不用擔心送出後驗證不過的時候,先前輸入過的資料會消失掉

而各式資料的驗證方式,就要自行動腦筋了 

Contact

Github

Codepen

歡迎參觀我的賣場
© 2013 Copyright Digishot Web | Design Tools
Visitors【346429】
digishot webdesign studio