PEAR::HTML_QuickForm的驗證規則
參考資料:http://phpeye.com/article/view/id/108 規則名稱 參數 規則描述 required 必須輸入,不能為空 maxlength $length 最大字符長度 minlength $length 最小字符長度 rangelength $min,$max 字符長度的範圍 regex $rx 輸入的數據必須匹配給定的正則表達式 email true 驗證email地址的格式(有個可選的選項還可以查看域名是否有效) lettersonly 只能是英文字母 alphanumeric 只能是英文字母或數字 numeric 只能是數字 nopunctuation 不能包含以下特殊字符: ( ) . / * ^ ? # ! @ $ % + = , " ' > < ~ [ ] { }. nonzero 不能為零 compare 兩次輸入必須相同 uploadedfile 表單元素必須包含正確上傳文件 maxfilesize $size 上傳文件的最大容量 mimetype $mime 上傳文件的類型,$mime可以是數組,則上傳文件的類型必須為其中一種 filename $file_rx 上傳的文件的名稱必須滿足給定的正則表達式 其中compare規則有點特殊,它是指兩個表單的輸入數據必須相同(如密碼確認時)。它的用法如下: compare也可以用來比較兩個表單中輸入的數據的大小,如:
(forDNS heck) $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'
);
$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'
);
留言列表