国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

thinkPHP實現表單自動驗證

2024-05-04 23:29:21
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了如何使用thinkPHP實現表單自動驗證,筆者也是菜鳥,一步步實驗才得到的結果,這里給需要的朋友可以參考下
 
 

昨天晚上我們老大叫我弄表單自動驗證功能,愁了半天借鑒了好多官網的知識,才出來,誒,總之分享一下我自己的成果吧!

thinkphp 在Model基類為我們定義了自動驗證的函數和正則表達式,我們只需要在對應的數據庫表的模型類下建立$_validate屬性就可以了。

1、我們找到Model基類,可以看到 protected $_validate       = array();  // 自動驗證定,它是數組類型的,下面在對應數據模型文件定義它;

2、

 

復制代碼代碼如下:

public function CheckVerify($verify) {

 

   if (md5($verify) != Session::get('verify')) return false;
        return true;
}
//自動驗證

 

 

復制代碼代碼如下:

   protected $_validate = array(
        array("title", "require", "標題必須!"),
        array('categoryId', 'require', "類別必須!"),
        array('content', 'require', "內容必須!"),
        array('verify', 'require','驗證碼必須!'),
        array('verify', 'CheckVerify', '驗證碼錯誤!', 0, 'callback')
    );

 

3、格式說明:array(驗證字段,驗證規則,錯誤提示,驗證條件,附加規則,驗證時間),

4、參數解釋:

驗證字段:需要驗證的表單字段名稱,這個字段不一定是數據庫字段,也可以是表單的一些輔助字段,例如確認密碼和驗證碼等等。
驗證規則: 要進行驗證的規則,需要結合附加規則(必須),官方已經包含的規則如下(自己同時也可以加):

 

復制代碼代碼如下:

$validate = array(
   'require'=> '/.+/',
   'email' => '/^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$/',
   'url' => '/^http:////[A-Za-z0-9]+/.[A-Za-z0-9]+[//=/?%/-&_~`@[/]/':+!]*([^<>/"/"])*$/',
   'currency' => '/^/d+(/./d+)?$/',
   'number' => '/^/d+$/',
   'zip' => '/^[1-9]/d{5}$/',
   'integer' => '/^[-/+]?/d+$/',
   'double' => '/^[-/+]?/d+(/./d+)?$/',
   'english' => '/^[A-Za-z]+$/',
);

 

提示信息: 用于驗證失敗后的提示信息定義(必須)、
驗證條件:(可選)
驗證條件的規則有三條: 
Model::EXISTS_TO_VAILIDATE 或者0 存在字段就驗證 (默認) 
Model::MUST_TO_VALIDATE 或者1 必須驗證 
Model::VALUE_TO_VAILIDATE或者2 值不為空的時候驗證 
附加規則:
regex 正則驗證,說明前面的那個驗證規則是一個正則表達式;
function 使用函數驗證,說明前面的那個驗證是個函數名;
callback 使用方法驗證,說明驗證規則是一個Model類的方法;
confirm 驗證表單中的兩個字段是否相等,驗證規則是一個字段名;
equal 驗證是否等于某個值,這個值是有前面的驗證規則定義的;
in 驗證是否在某個范圍之內,前面定義的是一個數組;
unique 驗證是否唯一,系統會根據字段目前的值查詢數據庫來判斷時候存在相同的值;
同時,系統還內置了一些常用的正則驗證規則,可以這節使用,包括:require字段必須,email 郵箱;
currency 貨幣,number 數字,這些驗證規則可以直接使用;

驗證時間:(可選)

01.Model:: MODEL_INSERT 或者1新增數據時候驗證 
02.Model:: MODEL_UPDATE 或者2編輯數據時候驗證 
03.Model:: MODEL_BOTH 或者3 全部情況下驗證(默認)

5、官方示例:

 

復制代碼代碼如下:

protected $_validate  =  array(   
array('verify','require','驗證碼必須!'), //默認情況下用正則進行驗證   
array(name,'','帳號名稱已經存在!',0,'unique',1), // 在新增的時候驗證name字段是否唯一   
array('value',array(1,2,3),'值的范圍不正確!',2,'in'), // 當值不為空的時候判斷是否在一個范圍內   
array('repassword','password','確認密碼不正確',0,'confirm'), // 驗證確認密碼是否和密碼一致   
array('password','checkPwd','密碼格式不正確',0,'function')// 自定義函數驗證密碼格式  
);

 

    也不知道符合我們老大的要求不,總之還算是出來了,好辛苦啊!!  大晚上的找代碼,找案例,求安慰!!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 多伦县| 高碑店市| 邓州市| 潍坊市| 海门市| 湖南省| 卓尼县| 桃园县| 石门县| 宝清县| 台南县| 乌鲁木齐市| 思茅市| 陇西县| 西平县| 团风县| 邳州市| 新乡县| 阆中市| 大渡口区| 吕梁市| 禄劝| 阳城县| 漯河市| 合作市| 达孜县| 邓州市| 南靖县| 临桂县| 黑山县| 孝义市| 喀什市| 威宁| 交城县| 富锦市| 银川市| 舞阳县| 广德县| 蒲城县| 蒙阴县| 大厂|