av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

php語言

ThinkPHP中自動驗(yàn)證

時(shí)間:2025-03-29 23:50:04 php語言 我要投稿

ThinkPHP中自動驗(yàn)證

  學(xué)無止境,剛開始學(xué)習(xí)PHP會覺得簡單,但是越學(xué)會越難。下面是小編整理的關(guān)于ThinkPHP中自動驗(yàn)證的知識,希望對大家有用,更多消息請關(guān)注應(yīng)屆畢業(yè)生網(wǎng)。
  ThinkPHP中自動驗(yàn)證:array(‘字段’,‘驗(yàn)證規(guī)則’,‘錯(cuò)誤提示’[,‘驗(yàn)證條件’,‘附加規(guī)則’,‘驗(yàn)證時(shí)間’]),。
  1、驗(yàn)證字段:一般來說是表單的字段名,但不一定需要與數(shù)據(jù)表的字段匹配,比如新用戶注冊時(shí)常見的密碼確認(rèn)
  2、驗(yàn)證規(guī)則:系統(tǒng)內(nèi)置了常用的規(guī)則,require(字段必填)、 email(郵箱格式)、url(url格式)、currency(貨幣)、number(正整數(shù))、integer(整數(shù))、double(浮點(diǎn)數(shù))、zip(郵
  政編碼
  政編碼)、english。這些規(guī)則默認(rèn)采用的附加規(guī)則是 regex,正則表達(dá)式驗(yàn)證,只不過是設(shè)定好的。
  3、錯(cuò)誤信息:驗(yàn)證失敗后的提示。
  4、驗(yàn)證條件:共三種:
  1.self::EXISTS_VALIDATE 或 0,表示存在字段就驗(yàn)證(推薦使用) ;
  2.self::MUST_VALIDATE 或 1,表示必須驗(yàn)證;
  3.self::VALUE_VALIDATE 或 2,表示值不為空的時(shí)候驗(yàn)證。
  5、驗(yàn)證時(shí)間:主要新增修改等驗(yàn)證。
  1.self::MODEL_INSERT 或 1 新增數(shù)據(jù)時(shí)驗(yàn)證;
  2.self::MODEL_UPDATE 或 2 編輯數(shù)據(jù)時(shí)驗(yàn)證;
  3.self::MODEL_BOTH 或 3 全部情況下驗(yàn)證(推薦使用)。
  一、靜態(tài)定義
  在模型類里預(yù)先定義好該模型的自動驗(yàn)證規(guī)則,就是靜態(tài)定義。
  1、在Home/Model目錄下建立UserModel.class.php文件,內(nèi)容如下:
  ?
  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  class UserModel extends Model {
  protected $_validate = array(
  //默認(rèn)情況下用系統(tǒng)內(nèi)置
  array('user', 'require', '用戶不得為空!'),
  //驗(yàn)證數(shù)據(jù)唯一性
  array('user', '', '用戶名稱已存在!',2,'unique',1),
  //驗(yàn)證密碼不得為空
  array('pass', 'require', '密碼不得為空!'),
  //密碼不得小于六位不得大于20位
  array('pass', '6,20', '密碼不得小于6位,不得大于20位', 3,'length'),
  );
  }
  2、在Home/controller目錄下建立Usercontroller.class.php,內(nèi)容如下:
  ?
  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  //控制器create()方法自動調(diào)用驗(yàn)證
  $user = D('User');
  $data['user'] = '蠟筆小新';
  $data['pass'] = '123';
  if ($user->create($data)) {
  echo '所有數(shù)據(jù)驗(yàn)證成功!';
  } else {
  //輸出錯(cuò)誤信息
  var_dump($user->getError());
  }
  重點(diǎn)介紹一下附加規(guī)則中的callback(回調(diào)驗(yàn)證)和function(函數(shù)驗(yàn)證):
  1、callback(回調(diào)驗(yàn)證)
  UserModel.class.php中的格式如下:
  ?
  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  13
  14
  class UserModel extends Model{
  protected $_validate=array(
  array('user','checklength','用戶名必須在3-5之間!',0,'callback',3,array(3,5)),
  );
  function checklength($str,$min,$max){
  preg_match_all("/./u", $str,$matchs);
  $len=count($matchs[0]);
  if($len<$min || $len>$max){
  return false;
  }else{
  return true;
  }
  }
  }
  其中回調(diào)函數(shù)直接寫在user類里面
  2、function(函數(shù)驗(yàn)證)
  UserModel.class.php中的格式如下:
  ?
  class UserModel extends Model{
  protected $_validate=array(
  array('user','checklength','用戶名必須在3-5之間!',0,'function',3,array(3,5)),
  );
  }
  函數(shù)內(nèi)容需要在 Home/Common 文件夾下的 Common 文件夾建立 function.php 文件,會自動加載,內(nèi)容如下:
  ?
  function checkLength($str,$min,$max) {
  preg_match_all("/./u", $str, $matches);
  $len = count($matches[0]);
  if ($len < $min || $len > $max) {
  return false;
  } else {
  return true;
  }
  }

【ThinkPHP中自動驗(yàn)證】相關(guān)文章:

ThinkPHP中create()方法自動驗(yàn)證表單信息01-26

ThinkPHP表單自動提交驗(yàn)證實(shí)例教程03-12

php中tp驗(yàn)證表單與自動填充函數(shù)代碼07-16

ThinkPHP中redirect用法實(shí)例分析02-08

thinkPHP的RBAC權(quán)限管理08-13

PHP中Yii框架之表單驗(yàn)證規(guī)則06-08

thinkPHP實(shí)現(xiàn)的聯(lián)動菜單功能03-04

excel中自動求和06-05

ThinkPHP多表聯(lián)合查詢的常用方法06-18