thinkphp注册验证

在model中新建一个UserModel

    //覆盖原本的设置
    //一次性获得全部验证错误
    protected $patchValidate    =   true;
    
    //实现表单项目验证
    //通过重写父类属性_validate实现表单验证
    protected $_validate        =   array(
        
        //验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),
        //验证用户名,require必须填写项目
     //验证字段的名和表单传来的name需要一致 array('username','require','用户名必须填写'), array('password','require','密码必须填写'), //可以为同一个项目设置多个验证 array('password2','require','确认密码必须填写'), //与密码的值得是一致的 array('password2','password','两次密码不一致',0,'confirm'), //邮箱验证 array('user_email','email','邮箱格式不正确',2), //验证qq //都是数字的、长度5-10位、 首位不为0 //正则验证 /^[1-9]\d{4,9}$/ array('user_qq',"/^[1-9]\d{4,9}$/",'qq格式不正确'), //电话正则/^1[34578]\d{9}$/ array('user_tel',"/^1[34578]\d{9}$/",'电话格式不正确'), );

 在UserController.class.php中

function register(){
        //因为有验证规则,所以需要用自定义的Model
        $user=new \Model\UserModel;
        if(!empty($_POST)){
            //集成表单验证
            if(!$user->create()){
          $errorInfo=$user->getError();
          $this->assign('errorInfo',$errorInfo);
          $this->display(); }else{ $rst=$user->add(); if($rst){ $this->success('注册成功',U('Index/index')); //echo "success"; }else{ $this->success('注册失败',U('Index/index')); } } }else{ $this->display(); } }

 结果

关于这个验证的用法,请看thinkphp手册

http://document.thinkphp.cn/manual_3_2.html#auto_validate

posted @ 2017-05-25 15:02  安筱雨  阅读(704)  评论(0编辑  收藏  举报