PEAR::HTML_QuickForm的驗證規則

參考資料:http://phpeye.com/article/view/id/108

規則名稱

參數

規則描述

required

 

必須輸入,不能為空

maxlength

$length

最大字符長度

minlength

$length

最小字符長度

rangelength

$min,$max

字符長度的範圍

regex

$rx

輸入的數據必須匹配給定的正則表達式

email

true
(forDNS heck)

驗證email地址的格式(有個可選的選項還可以查看域名是否有效)

lettersonly

 

只能是英文字母

alphanumeric

 

只能是英文字母或數字

numeric

 

只能是數字

nopunctuation

 

不能包含以下特殊字符: ( ) . / * ^ ? # ! @ $ % + = , " ' > < ~ [ ] { }.

nonzero

 

不能為零

compare

 

兩次輸入必須相同

uploadedfile

 

表單元素必須包含正確上傳文件

maxfilesize

$size

上傳文件的最大容量

mimetype

$mime

上傳文件的類型,$mime可以是數組,則上傳文件的類型必須為其中一種

filename

$file_rx

上傳的文件的名稱必須滿足給定的正則表達式



其中compare規則有點特殊,它是指兩個表單的輸入數據必須相同(如密碼確認時)。它的用法如下:

$form->addElement('password','password_1','Enter your password:');
$form->addElement('password','password_2','Enter your password (again):');
$form->addRule(array('password_1','password_2'),
               
"Passwords don't match!",'compare');

compare也可以用來比較兩個表單中輸入的數據的大小,如:

$form->addElement('text','min_age','Minimum Age:');
$form->addElement('text','max_age','Maximum Age:');
$form->addRule(array('min_age','max_age'),
               
"Minimum Age must be less than Maximum Age",
               
'compare','<');

 

客戶端驗證功能

客戶端驗證:

前面有提到使用addRule()來增加一條驗證規則,其實addRule()還有第五個參數—client。這個參數用來說明我們將使用的是客戶端驗證,如果傳遞了這個參數,則程序會自動生成客戶端的Javascript代碼來驗證表單裡的數據。

使用客戶端驗證更加快捷方便,而且可以減輕服務器的負載。

Client.php

//加入三條客戶端驗證規則
$form->addRule('name','用戶名不能為空!', 'required','','client');
$form->addRule('name','用戶名必須為3位以上字母或數字', 'minlength',3,'client');
$form->addRule('password','密碼不能為空!', 'required','','client');

創作者介紹

新‧夢想

kevin0523 發表在 痞客邦 PIXNET 留言(0) 人氣()