在PHP網站開發建設中,使用者註冊、留言是必不可少的功能,使用者提交的資訊資料都是通過Form表單提交,為了保證資料的完整性、安全性,PHP Form表單驗證是過濾資料的首要環節,PHP對錶單提交資料的驗證方式多種多樣,早期一般使用Javascript對PHP表單進行驗證,隨著WEB2.0時代的到來,考慮到使用者體驗,使用Jquery Form表單驗證外掛程式是常用手法,今天我要介紹的是一個PHP表單驗證類PHP form validator,其可應用於一般的PHP表單驗證,也可以和第三方程式或Javascript整合進行表單驗證,更可以自訂具體的PHP表單驗證規則,PHP form validator使用起來非常方便。
PHP form validator表單驗證類使用說明
1、下載PHP form validator,並解壓至PHP環境配置設定的網站運行目錄
2、建立一個有待驗證的Form表單,建立最常用的選項,比如使用者名稱,Email,留言框等,具體的PHP表單驗證執行個體源碼如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
<?php require_once"formvalidator.php"; $show_form=true; if(isset($_POST['Submit'])) { $validator=new FormValidator(); $validator->addValidation("Name","req","請填寫使用者名稱"); $validator->addValidation("Email","email","請填寫正確的Email地址"); $validator->addValidation("Email","req","請填寫Email地址"); if($validator->ValidateForm()) { echo"PHP表單驗證成功,謝謝你對www.leapsoul.cn的支援"; $show_form=false; } else { echo"錯誤提示:"; $error_hash=$validator->GetErrors(); foreach($error_hashas$inpname=>$inp_err) { echo"<p>$inpname : $inp_err</p>\n"; } } } if(true==$show_form) { ?> <form name='test' method='POST' action='' accept-charset='UTF-8'> Name: <input type='text' name='Name' size='20'> Email: <input type='text' name='Email' size='20'> <input type='submit' name='Submit' value='Submit'> </form> <?php }//true == $show_form ?> |
PHP form validator表單驗證源碼執行個體解讀
第1行:要啟用PHP form validator表單驗證類,首先第一步需要將formvalidator.php require進來。
第3行:$show_form是用來控製表單顯示的開關,預設顯示表單。
第6~9行:當提交需要驗證處理的表單時,首先建立一個PHP表單驗證類的實體,並添加表單中需要驗證的選項,在代碼執行個體中主要驗證使用者名稱(Name)和Email地址兩個選項。
addValidation函數的三個參數特別說明:第一個參數代表需要驗證的表單中的項目,即input name;第二個參數代表驗證的規則描述,比如必填、字元長短等,各種驗證規則下面會介紹;第三個參數代表當表單驗證不通過時需要顯示的錯誤資訊。
第10~24行:通過PHP form validator表單驗證類的ValidateForm()函數來判斷表單是否通過驗證,如果沒有通過驗證則顯示錯誤資訊,這段代碼自由度很大,你可以根據需要修改,比如跳轉到具體頁面都是可以實現的。
至此,PHP form validator表單驗證類最基礎的使用方法就介紹完了,如果其定義的表單驗證規則不符合你的需要,你可以自行定製具體的驗證規則,方法如下
1、建立一個繼承了自訂驗證類CustomValidator的子類,比如MyValidator,並重寫DoValidate()函數功能,即
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
<?php class MyValidator extends CustomValidator { function DoValidate(&$formars,&$error_hash) { if(stristr($formars['Comments'],'http://')) { $error_hash['Comments']="留言內容不能有URL地址"; returnfalse; } returntrue; } } ?> |
在上述代碼中自訂了一個表單驗證規則,即留言內容中不能包含URL地址。
2、將自訂的表單驗證規則添加到已有的表單驗證規則中,即
1 2 3 4 5 6 7
|
$validator=new FormValidator(); $validator->addValidation("Name","req","請填寫使用者名稱"); $validator->addValidation("Email","email","請填寫正確的Email地址"); $validator->addValidation("Email","req","請填寫Email地址");
$custom_validator=new MyValidator(); $validator->AddCustomValidator($custom_validator); |
自訂的表單驗證規則在其他表單驗證結束後會自動調用。
至此,PHP form validator表單驗證類的自訂驗證規則的使用方法就介紹完了,除此之外PHP form validator表單驗證類還可以結合Javascript或第三方JS、PHP類庫進行表單驗證,擴充性非常強,更多PHP form validator表單驗證執行個體請參考下載檔案中的範例程式碼。下面介紹PHP form validator表單驗證類的預設驗證規則
PHP form validator表單驗證類的驗證規則說明
req 必填
maxlen=??? 檢查輸入資料的最大長度為多少,比如允許最大長度為25,則給出maxlen=25的驗證描述
minlen=??? 檢查輸入資料的最小長度為多少,比如允許最小長度為5
alnum 只允許字母和數字
alnum_s 只允許字母、數字及空格
num 檢查數字資料
alpha 檢查字母資料
alpha_s 允許字母和空格
email 有效Email地址
lt=???
lessthan=??? 驗證資料是否小於給定的值,只適用於數字欄位,比如,如果值小於1000,即lt=1000
gt=???
greaterthan=??? 驗證資料是否大於給定的值,只適用於數字欄位,比如,如果值大於10,即lt=10
regexp=??? 驗證資料是否與給定的Regex匹配
dontselect=?? 驗證是否選擇了select選項,select選項列表中有一個選項是”請選擇”。如果不能選擇的選項是”請選擇”,需要將dontselect值設定為”請選擇”
dontselectchk 這個驗證描述是針對check boxes(複選框),使用者不能選擇設定的複選框
shouldselchk 使用者需選擇設定的複選框
dontselectradio 這個驗證描述是針對radio button(選項按鈕),使用者不能選擇設定的選項按鈕
selectradio 使用者需選擇給定的選項按鈕
selmin=?? 複選框組中至少要選擇多少個複選框,比如selmin=3
selone 使用者至少需從選項按鈕組中選擇一項
eqelmnt=??? 比較Form表單中的兩個元素並確認值是否相同,比如”密碼”(password)和”確認密碼”(confirm password),替代???的值以input element的name為準,比如eqelmnt=confirm_pwd
OK,PHP form validator表單驗證類的驗證規則說明就介紹完了,翻譯得不好或理解有問題的不妨多動手或留言。
只要示範下PHP form validator表單驗證類中的幾個驗證樣本,你會發現其使用者體驗絕不比Jquery之類的表單驗證外掛程式差,而且自訂PHP表單驗證也非常方便實用。
注:PHP網站開發教程-leapsoul.cn著作權,轉載時請以連結形式註明原始出處及本聲明,謝謝。