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

首頁 > 開發 > ThinkPHP > 正文

ThinkPHP 自動驗證實例

2024-09-09 15:20:21
字體:
來源:轉載
供稿:網友

ThinkPHP 自動驗證語法回顧

ThinkPHP 自動驗證格式如下:

array(驗證字段,驗證規則,錯誤提示[,驗證條件][,附加規則][,驗證時間])

ThinkPHP 自動驗證定義的附加規則如下:

regex:使用正則進行驗證(默認)

unique:驗證唯一性

confirm:驗證表單中的兩個字段是否相同

equal:驗證是否等于某個值

in:驗證是否在某個范圍內

function:使用函數驗證

callback:使用方法驗證

自動驗證例子,各種自動驗證參考例子如下:

  1. // 默認情況下用正則進行驗證  
  2. array('title','require','標題不能為空。'),  
  3. array('order','number','排序必須是數字。',2),  
  4. array('email','email','郵箱格式不符合要求。'),  
  5. array('qq','qq','QQ號碼不正確。'),  
  6. // 在新增的時候驗證標題title字段是否唯一  
  7. array('title','','標題已經存在!',0,'unique',1),  
  8.  // 驗證確認密碼是否和密碼一致  
  9. array('repassword','password','確認密碼不正確。',0,'confirm'),  
  10.  // 驗證class填寫的值為 一班  
  11. array('class','一班','班級必須填寫一班。',0,'equal'),  
  12.  // 當值不為空的時候判斷是否在一個范圍內  
  13. array('value',array(1,2,3),'值的范圍不正確。',2,'in'),  
  14.  // 自定義函數驗證用戶名格式 //Vevb.com 
  15. array('username','checkName','用戶名格式不正確。',0,'function'),  
  16.  // 在注冊或更改資料是調用 checkEmail 方法檢查郵箱  
  17. array('email','checkEmail',1,'callback'), 

使用正則表達式(regex)驗證

上述幾類附加規則中,使用正則表達式是經常使用的,也是系統默認的驗證附加規則,系統內置了如下正則檢測規則:

require(必須)、email(郵箱格式)、url(URL地址)、currency(貨幣)、number(數字)、qq(QQ號碼)、english(英文字符).

這些附加規則可以直接使用,如果這些附加規則無法滿足要求,可以使用自定義的正則規則:

array('username','/^{3,15}$/','用戶名不符合要求。'),

該規則要求用戶名只能為英文字符及下劃線和數字組成,且長度為3-15個字節.

使用自定義函數(function)驗證

使用自定義函數驗證附加規則,函數可以是 Common/common.php 里的自定義函數,也可以是 PHP 的內置函數:

  1. class UserModel extends Model{  
  2.  protected $_validate = arrayarray('username','checkName','用戶名不符合要求。',0,'function'), };  

自定義 checkName 函數:

  1. function checkName($username){  
  2.  if(!preg_match('/^{3,15}$/'$username)){ 
  3.       return false;  
  4.  }else{  
  5.     return true;  
  6.  }  

提示:對于用戶名的規則可以直接使用正則驗證而無需函數,在此只是為了演示自定義函數的驗證的用法而已.

使用方法(callback)驗證.

ThinkPHP 自動驗證還支持調用當前 Model 類的一個方法來進行驗證.

  1. class UserModel extends Model{  
  2.  protected $_validate = arrayarray('email','checkEmail','郵箱已經存在。',1,'callback'),  
  3. };  
  4.  // checkEmail方法  
  5.  protected function checkEmail(){  
  6.  $User=new Model('User');  
  7.  // 新用戶注冊,驗證唯一  
  8.  if(emptyempty($_POST<'uid'>)){  
  9.  if($user->getByEmail($_POST<'email'>)){  
  10.  return false;  
  11.  }else{  
  12.  return true;  
  13.  }  
  14.  }else{  
  15.  // 更改資料判斷郵箱與其他人的郵箱是否相同  
  16.  if($user->where("uid!={$_POST<'uid'>} and email='{$_POST<'email'>}'")->find()){ 
  17.  return false;  
  18.  }else
  19.  return true; 
  20.  } 
  21.  } } } 

當 checkEmail 方法返回 false 時,驗證就不通過,可見 ThinkPHP 自動驗證功能十分強大,能滿足對表單的各種驗證要求.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 大田县| 车致| 沙田区| 中卫市| 洞口县| 德令哈市| 商城县| 山东| 陵水| 澎湖县| 营山县| 扎赉特旗| 台南市| 武安市| 和顺县| 恭城| 江都市| 准格尔旗| 汉川市| 凤凰县| 于田县| 松阳县| 镇安县| 南昌县| 博湖县| 枣庄市| 房产| 恩平市| 六枝特区| 长阳| 清徐县| 永康市| 江永县| 嘉禾县| 平果县| 青冈县| 东乡| 五河县| 陇川县| 闽清县| 堆龙德庆县|