thinkphp註冊驗證
阿新 • • 發佈:2017-05-25
$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註冊驗證