1. 程式人生 > >thinkphp註冊驗證

thinkphp註冊驗證

$patch usermod rst 重寫 name brush 實現 del .cn

在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

thinkphp註冊驗證