建立一個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送出表單後的資料,所以不用擔心送出後驗證不過的時候,先前輸入過的資料會消失掉
而各式資料的驗證方式,就要自行動腦筋了