thinkPHP自动验证机制详整_php实例_脚本之家

2020-02-15 08:35栏目:bob体育平台
TAG:

本文实例呈报了thinkPHP自动验证机制。分享给大家供大家参谋,具体如下:

thinkphp中的自动验证

array(验证字段,验证规则,错误提示,[验证条件,附加规则,验证时间])

1.表明字段

急需注解的表单字段名称,这几个字段不肯定是数据库字段,也能够是表单的风姿罗曼蒂克对相助字段,举个例子确认密码和验证码之类。有分别验证法规和字段无关的图景下,验证字段是足以猖獗安装的,譬如expire保藏期法规是和表单字段非亲非故的。

 

2.验证准绳

要开展认证的平整,要求整合附加法规,假如在运用正则验证的附加法规境况下,系统还停放了部分常用正则验证的平整,能够一直作为验证法规使用,包蕴:require 字段必需、email 邮箱、url UOdysseyL地址、currency 货币、number 数字。

 

3.荒谬提醒

用来注解战败后的提示音讯定义

 

4.验证条件

含蓄下边两种情景:

Model::EXISTS_VALIDATE 或然0 存在字段就验证 (默许)

Model::MUST_VALIDATE 只怕1 必得表明

Model::VALUE_VALIDATE可能2 值不为空的时候证实

 

5.叠合准绳

匹配验证法规使用,包罗上面一些平整:

regex 正则验证,定义的表明准绳是八个正则表明式(默许)

function函数验证,定义的认证准绳是叁个函数名

callback方法求证,定义的印证准则是方今模型类的二个方法

confirm验证表单中的四个字段是或不是意气风发致,定义的认证准绳是一个字段名

equal 验证是还是不是等于某些值,该值由前边的表达准则定义

in验证是不是在某些范围内,定义的注解准则必得是四个数组

length验证长度,定义的表达准则能够是一个数字(表示一定长度)大概数字范围(举例3,12 表示长度从3到12的限制)

between验证范围,定义的印证法则表示范围,能够运用字符串可能数组,比方1,31依然array(1,31State of Qatar

expire验证是不是在保质期,定义的验证法则表示时间节制,能够届期刻,举个例子能够运用 二〇一一-1-15,二零一二-1-15 表示近些日子交付保藏期在二零一一-1-15到贰零壹贰-1-15里面,也得以动用时间戳定义

ip_allow 验证IP是或不是允许,定义的印证准则表示同意的IP地址列表,用逗号分隔,比方 201.12.2.5,201.12.2.6

ip_deny 验证IP是或不是禁绝,定义的证实准则表示禁绝的ip地址列表,用逗号分隔,譬如201.12.2.5,201.12.2.6

unique 验证是还是不是唯风姿洒脱,系统会基于字段前段时间的值查询数据库来判别是还是不是留存相似的值。

 

6.验证年华

Model:: MODEL_INSERT 只怕1新扩展数据时候证实

Model:: MODEL_UPDATE 也许2编辑数据时候证实

Model:: MODEL_BOTH 大概3 全体场所下验证(默许)

 

示例

图片 1

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'), // 自定义函数验证密码格式
);

图片 2

总得结合create(卡塔尔使用

图片 3

$User = D("User"); // 实例化User对象
if (!$User->create()){
    // 如果创建失败 表示验证没有通过 输出错误提示信息
exit($User->getError());
}else{
    // 验证通过 可以进行其他数据操作
}

图片 4

 

品类实例

图片 5

//自动验证
    protected $_validate = array (
        array('name', 'require', '姓名不能为空!', 1, '', 3),
        array('tel', 'require', '手机号不能为空!', 1, '', 3),
        array('password', 'require', '密码不能为空!', 1, '', 1),
        array('email', 'require', '邮箱不能为空!', 1, '', 3),
        array('ID_number', 'require', '身份证号不能为空!', 1, '', 3),
        array('ID_positive', 'require', '身份证正面照不能为空!', 1, '', 1),
        array('ID_opposite', 'require', '身份证反面照不能为空!', 1, '', 1),
        array('ID_handle', 'require', '手持身份证照不能为空!', 1, '', 1),
        array('bankcard', 'require', '银行卡照片不能为空!', 1, '', 1),
        array('openbank', 'require', '开户行不能为空!', 1, '', 3),
        array('accountname', 'require', '银行账户名不能为空!', 1, '', 3),
        array('bankaccount', 'require', '银行账户号不能为空!', 1, '', 3),
        array('tel', '/^d{11}$/', '手机号不合法!', 1, 'regex', 3),
        array('email', 'email', '邮箱不合法!', 1, '', 3),
        array('ID_number', '/^(d{15}$|^d{18}$|^d{17}(d|X|x))$/', '身份证号不合法!', 1, 'regex', 3),
        array('tel', '', '手机号已经存在!', 1, 'unique', 3), // 新增修改时候验证tel字段是否唯一
        array('email', '', '邮箱已经存在!', 1, 'unique', 3), // email唯一
        array('ID_number', '', '身份证号已经存在!', 1, 'unique', 3), // 身份证号唯一
    );

图片 6

证实,只要定义了Model,在任哪个地点方调用,都会展开认证。很有利。

总得是D方法,才会使得。M方法不会接触自动验证。

       在全校学.NET 方向,步向同盟社三个多月之后,做新类型用ThinkPHP 框架 现在将和煦学习中从网络找的材质和友好计算的一丢丢微细的阅世和大家分享一下(ps:在COO的影响下自家感到ThinkPHP依旧支付功用相当慢的三个框架):

array(验证字段,验证法则,错误提示,[申明条件,附加法则,验证时间])

  ThinkPHP 自带验证功效, 数据证实可以开展数据类型,业务法则,安全剖断等方面包车型地铁验证操作。

1.表达字段

  数听大人表明有二种方法:静态模式:在模型类里面通过$_validate属性定义表明法规。

内需注明的表单字段名称,这一个字段不必然是数据库字段,也能够是表单的有的帮扶字段,举例确认密码和验证码之类。有独家验证准则和字段毫不相关的情况下,验证字段是足以任意安装的,举例expire保质期法则是和表单字段非亲非故的。

                                         动态方式:使用模型类的validate方法动态成立自动验证准绳。

2.认证法规

    无论什么点子,验证得定义都以联合的准则,

要拓宽验证的家有家规,要求结合附加法规,假设在利用正则验证的叠合法则情形下,系统还内置了有些常用正则验证的准则,能够直接当作验证准绳使用,满含:require 字段必得、email 邮箱、url UMuranoL地址、currency 货币、number 数字。

                array(
                      array(验证字段1,验证法则,错误提醒,[证实条件,附加准绳,验证时间]),
                      array(验证字段2,验证准则,错误提醒,[表达条件,附加法则,验证时间]),
                      ......
          );

3.荒唐提示

  说明
    验证字段:(必得)需求验证的表单字段名称,那些字段不必然是数据库字段,也能够是表单的部分帮助字段,举例确认密码和验证码之类。某些验证法则和字段毫无干系的意况下,验证字段是足以率性安装的,比如expire保藏期准绳是和表单字段非亲非故的。

用于表明失败后的提示信息定义

           验证法则:(必需)要开展验证的规行矩步,须要整合附加法规,假如在应用正则验证的叠合准绳意况下,系统还停放了一些常用正则验证的规行矩步,能够直接充任表明法则使用,包蕴:require 字段必需、email 邮箱、url U酷威L地址、currency 货币、number 数字。

4.验证条件

          提醒信息:(必得)用于注脚战败后的提醒消息定义

Model::EXISTS_VALIDATE 只怕0 存在字段就验证 Model::MUST_VALIDATE 只怕1 必须评释Model::VALUE_VALIDATE恐怕2 值不为空的时候证实

          验证条件:(可选)包蕴上面三种状态:
         Model::EXISTS_VALIDATE 也许0 存在字段就证实(暗中同意)
         Model::MUST_VALIDATE 或许1 必需表明
           Model::VALUE_VALIDATE恐怕2 值不为空的时候证实
     附加准绳:(可选)合营验证法规使用,包罗下边一些准则:
         regex  正则验证,定义的表明法规是二个正则表明式(暗中认可)
           function  函数验证,定义的表明法规是二个函数名
           callback  方法求证,定义的表明法则是当下模型类的叁个办法
           confirm  验证表单中的三个字段是或不是雷同,定义的验证法规是叁个字段名
           equal  验证是或不是等于有个别值,该值由前面的认证准则定义
           in  验证是还是不是在有个别范围内,定义的印证法规必得是叁个数组
           length  验证长度,定义的注脚法则可以是二个数字(表示一定长度)恐怕数字范围(比如3,12 表示长度从3到12的限量)
           between  验证范围,定义的注明准绳表示范围,能够应用字符串可能数组,举个例子1,31可能array(1,31State of Qatar
           expire  验证是还是不是在保藏期,定义的评释法规表示时间约束,能够届时刻,举个例子能够利用 二〇一三-1-15,2012-1-15 表示方今交给保质期在2013-1-15到二零一三-1-15里边,也得以运用时间戳定义
           ip_allow  验证IP是还是不是同意,定义的证实法规表示同意的IP地址列表,用逗号分隔,比方201.12.2.5,201.12.2.6
           ip_deny  验证IP是还是不是防止,定义的认证法规表示防止的ip地址列表,用逗号分隔,例如201.12.2.5,201.12.2.6
           unique  验证是不是唯后生可畏,系统会依靠字段近日的值查询数据库来推断是不是留存同样的值。

5.叠合准则

    验证时间:(可选)
           Model::MODEL_INSERT或然1新增添数据时候证实
           Model::MODEL_UPDATE或然2编辑数额时候证实
               Model::MODEL_BOTH可能3全副状态下验证(暗中认可)
  静态定义
      在模型类里面预先定义好该模型的电动验证法规,称为静态定义。
比如表达,今后在模型类里面定义了$_validate属性如下:

极其验证准绳使用,富含上面一些法则:

                class UserModel extends CommonModel {

版权声明:本文由bob体育app发布于bob体育平台,转载请注明出处:thinkPHP自动验证机制详整_php实例_脚本之家