ThinkPHP - 自动创建 + 自动验证 + 自动完成
自动创建:创建数据模型。
1 $User->create();
自动验证:验证提交的表单数据。
1 protected $_validate = array( 2 array('verify','require','验证码必须!'), //默认情况下用正则进行验证 3 array('name','','帐号名称已经存在!',0,'unique',1), // 在新增的时候验证name字段是否唯一 4 array('value',array(1,2,3),'值的范围不正确!',2,'in'), // 当值不为空的时候判断是否在一个范围内 5 array('repassword','password','确认密码不正确',0,'confirm'), // 验证确认密码是否和密码一致 6 array('password','checkPwd','密码格式不正确',0,'function'), // 自定义函数验证密码格式 7 );
自动完成:处理提交的表单数据。
1 protected $_auto = array ( 2 array('status','1'), // 新增的时候把status字段设置为1 3 array('password','md5',1,'function') , // 对password字段在新增的时候使md5函数处理 4 array('name','getName',1,'callback'), // 对name字段在新增的时候回调getName方法 5 array('create_time','time',2,'function'), // 对create_time字段在更新的时候写入当前时间戳 6 );
实例代码:
注册用户代码:
1 /** 2 * 注册用户 3 */ 4 public function doregister(){ 5 //创建模型, 6 //D:先检测是否有自定义模型,如没有执行默认Model 7 //M:直接执行默认Model 8 $user = D('User'); 9 10 //创建数据,并验证 11 if( !$user->create() ) { 12 //验证失败 13 $this->error($user->getError(), '/Login/register.html'); 14 } 15 16 //写入数据 17 $res = $user->add(); 18 19 //判断是否写入成功 20 if($res > 0) { 21 //注册成功,发送验证邮件,跳转到登陆页面. 22 23 //TODO:发送验证邮件至注册邮箱,如果成功,跳转至登录页面并提示信息。否则,提示验证邮件发送失败,请联系管理员。 24 25 $this->success('注册成功,请登录填写邮箱进行验证!', '/Login/login.html'); 26 }else { 27 //注册失败 28 $this->error('注册用户失败!', '/Login/register.html'); 29 } 30 }
User表,实体模型(自动验证,自动完成):
1 <?php 2 /** 3 * 用户模型类 4 */ 5 class UserModel extends Model{ 6 /** 7 * 自动验证数组,用于验证数据 8 */ 9 protected $_validate=array( 10 //验证码,不为空,且必须填写正确 11 array('verifycode','require','验证码必须填写!'), 12 array('verifycode','checkCode','验证码错误,请重新填写!',0,'callback',1), 13 14 //用户名,不为空,不能重复,且符合6-18之间,字母,数字,下划线。 15 array('username','require','用户名必须填写!'), 16 array('username','','用户名已存在,请重新填写!', 0, 'unique'), 17 array('username', '/^[a-zA-Z0-9_]{3,16}$/', '用户名必须以字母,数字,下划线,且6-18位之间!', 0, 'regex'), 18 19 //密码,不为空,是否填写,两次密码是否相同 20 array('password', 'require', '密码必须填写!'), 21 array('repassword', 'require', '重复密码必须填写!'), 22 array('password', 'repassword', '两次密码不相同!', 0, 'confirm'), 23 24 //性别,只能为1或0 25 array('sex', '/^[01]$/', '性别选择出错!', 0, 'regex'), 26 ); 27 28 29 /** 30 * 自动完成数组,用于处理数据 31 */ 32 protected $_auto = array( 33 //密码,MD5加密处理 34 array('password', 'md5', 1, 'function'), 35 ); 36 37 38 /** 39 * 判定验证码 40 */ 41 protected function checkCode($code){ 42 if(md5($code)!=$_SESSION['verify']){ 43 return false; 44 }else{ 45 return true; 46 } 47 } 48 }
posted on 2016-02-06 18:11 ultrastrong 阅读(1857) 评论(0) 编辑 收藏 举报