首页 > Web开发 > 详细

ThinkPHP - 自动创建 + 自动验证 + 自动完成

时间:2016-02-06 22:16:09      阅读:257      评论:0      收藏:0      [点我收藏+]

自动创建:创建数据模型。

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 }

 

ThinkPHP - 自动创建 + 自动验证 + 自动完成

原文:http://www.cnblogs.com/KTblog/p/5184243.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!