ThinkPHP - 自动创建 + 自动验证 + 自动完成
2016-02-06 18:11
585 查看
自动创建:创建数据模型。
自动验证:验证提交的表单数据。
自动完成:处理提交的表单数据。
实例代码:
注册用户代码:
User表,实体模型(自动验证,自动完成):
$User->create();
自动验证:验证提交的表单数据。
protected $_validate = array( array('verify','require','验证码必须!'), //默认情况下用正则进行验证 array('name','','帐号名称已经存在!',0,'unique',1), // 在新增的时候验证name字段是否唯一 array('value',array(1,2,3),'值的范围不正确!',2,'in'), // 当值不为空的时候判断是否在一个范围内 array('repassword','password','确认密码不正确',0,'confirm'), // 验证确认密码是否和密码一致 array('password','checkPwd','密码格式不正确',0,'function'), // 自定义函数验证密码格式 );
自动完成:处理提交的表单数据。
protected $_auto = array ( array('status','1'), // 新增的时候把status字段设置为1 array('password','md5',1,'function') , // 对password字段在新增的时候使md5函数处理 array('name','getName',1,'callback'), // 对name字段在新增的时候回调getName方法 array('create_time','time',2,'function'), // 对create_time字段在更新的时候写入当前时间戳 );
实例代码:
注册用户代码:
/** * 注册用户 */ public function doregister(){ //创建模型, //D:先检测是否有自定义模型,如没有执行默认Model //M:直接执行默认Model $user = D('User'); //创建数据,并验证 if( !$user->create() ) { //验证失败 $this->error($user->getError(), '/Login/register.html'); } //写入数据 $res = $user->add(); //判断是否写入成功 if($res > 0) { //注册成功,发送验证邮件,跳转到登陆页面. //TODO:发送验证邮件至注册邮箱,如果成功,跳转至登录页面并提示信息。否则,提示验证邮件发送失败,请联系管理员。 $this->success('注册成功,请登录填写邮箱进行验证!', '/Login/login.html'); }else { //注册失败 $this->error('注册用户失败!', '/Login/register.html'); } }
User表,实体模型(自动验证,自动完成):
<?php /** * 用户模型类 */ class UserModel extends Model{ /** * 自动验证数组,用于验证数据 */ protected $_validate=array( //验证码,不为空,且必须填写正确 array('verifycode','require','验证码必须填写!'), array('verifycode','checkCode','验证码错误,请重新填写!',0,'callback',1), //用户名,不为空,不能重复,且符合6-18之间,字母,数字,下划线。 array('username','require','用户名必须填写!'), array('username','','用户名已存在,请重新填写!', 0, 'unique'), array('username', '/^[a-zA-Z0-9_]{3,16}$/', '用户名必须以字母,数字,下划线,且6-18位之间!', 0, 'regex'), //密码,不为空,是否填写,两次密码是否相同 array('password', 'require', '密码必须填写!'), array('repassword', 'require', '重复密码必须填写!'), array('password', 'repassword', '两次密码不相同!', 0, 'confirm'), //性别,只能为1或0 array('sex', '/^[01]$/', '性别选择出错!', 0, 'regex'), ); /** * 自动完成数组,用于处理数据 */ protected $_auto = array( //密码,MD5加密处理 array('password', 'md5', 1, 'function'), ); /** * 判定验证码 */ protected function checkCode($code){ if(md5($code)!=$_SESSION['verify']){ return false; }else{ return true; } } }
相关文章推荐
- PHP->iNews新闻发布系统目录结构3
- PHP限制HTML内容中图片必须是本站的方法
- php 获取系统时间
- PHP错误汇总笔记
- php处理表单中的复选框问题以及js实现全选
- phpstorm使用技巧
- 关于php的魔术常量
- ThinkPHP使用经验积累
- PHP设计模式之适配器模式
- PHP 中的防御性编程
- 今天把PHP复习了一下.
- php判断ip是否在指定ip区间内
- Yaf安装及配置
- PHP web 安全
- MySQL管理工具---phpAdmin
- PHP和Mysql简单的交互
- WORDPRESS教程之WORDPRESS第十二课WP-SETTING.PHP文件详解
- phpstorm 配置 babel 支持EcmaScript6
- TP-Link 路由器快速安装指南
- 【PHP】基于ThinkPHP框架搭建OAuth2.0服务