<?php
class UserModel extends Model{
//user是表的名称 必须以表名开始,继承Model类
protected $_validate=array(
//array(验证字段,验证规则,错误提示,[验证条件,附加规则,验证时间]);
array('code','require','验证码必须填写!'),
array('code','checkCode','验证码错误!',,'callback',),//callback方法验证,定义的验证规则是当前模型类的一个方法 array('username','require','用户必须填写!'),
array('username','','用户已经存在',,'unique',),
array('username','/^\w{6,}$/','用户名必须6个字母以上',,'regex',),//regex 正则验证,定义的验证规则是一个正则表达式(默认)
array('repassword','password','确认密码不正确',,'confirm'),
); protected function checkCode($code){
if(md5($code)!=$_SESSION['code']){
return false;
}else{
return true;
}
}
}
?>

以上是三大自动中的自动验证,自动创建为create(),自动完成为变量$_auto

<?php
class MessageModel extends RelationModel{
//自动完成 array(填充字段,填充内容,[填充条件,附加规则])
protected $_auto=array(
array('time','time',,'function'),
array('uid','getId',,'callback') );

//关联模型
protected $_link=array(
'User'=> array(
'mapping_type'=>BELONGS_TO,
'class_name'=>'User',//要关联的模型类名
'foreign_key'=>'uid',
'mapping_name'=>'user',//关联的映射名称,用于获取数据用
'mapping_fields'=>'username',//关联要查询的字段
'as_fields'=>'username',//直接把关联的字段值映射成数据对象中的某个字段
//'as_fields'=>'username:uname',//直接把关联的字段值映射成数据对象中的某个字段 : 更改名字防止冲突
), );
protected function getId(){
return $_SESSION['id'];
}
}
?>
关联模型的使用

thinkPHP中服务器端的验证的更多相关文章

  1. Thinkphp 中的自动验证 上一篇有例子

    说明,只要定义了Model,在任何地方调用,都会进行验证.很方便. 必须是D方法,才会有效.M方法不会触发自动验证. 说明:这里没练习静态自动验证:如果用到静态验证首先自定义一个控制器,再在Model ...

  2. thinkphp中的自动验证

    array(验证字段,验证规则,错误提示,[验证条件,附加规则,验证时间]) 1.验证字段 需要验证的表单字段名称,这个字段不一定是数据库字段,也可以是表单的一些辅助字段,例如确认密码和验证码等等.有 ...

  3. Thinkphp中D方法和M方法的区别

    两者共同点都是实例化模型的,而两者不同点呢?一起来看一下: $User = D('User');括号中的参数User,对应的模型类文件的 \Home\Model\UserModel.class.php ...

  4. mvc中服务器端、客户端属性验证

    在mvc中使用表单进行数据提交时,数据验证分为服务器端验证和客户端验证: 我们可以通过使用HtmlHelper中的方法及在页面中引用js库对Model的属性的数据注解(System.Component ...

  5. thinkphp中session跨域问题

    问题描述 <thinkphp实现短信验证注册>中,小编不止记录了短信验证码的实现方法,同时还记录了图片验证码的实现方法. 本地使用,一切正常:后端项目和前端项目都部署到服务器,一切正常:后 ...

  6. [转]ThinkPHP中实例化对象M()和D()的区别,select和find的区别

    1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会 ...

  7. ASP.NET MVC5中的Model验证

    Model验证是ASP.NET MVC中的重要部分,它主要用于判断输入的数据类型及值是否符合我们设定的规则,这篇文章就介绍下ASP.NET MVC中Model验证的几种方式. 后台验证 DataAnn ...

  8. 防御CSRF的方法有哪些(一) HTTP 头中自定义属性并验证 CSRF跨站域请求伪造攻击

    CSRF (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下 ...

  9. kpvalidate开辟验证组件,通用Java Web请求服务器端数据验证组件

    小菜利用工作之余编写了一款Java小插件,主要是用来验证Web请求的数据,是在服务器端进行验证,不是简单的浏览器端验证. 小菜编写的仅仅是一款非常初级的组件而已,但小菜为它写了详细的说明文档. 简单介 ...

随机推荐

  1. java 包之 BeanUtils包的使用

    BeanUtils工具包是由Apache公司所开发,主要是方便程序员对Bean类能够进行简便的操作. 在使用BeanUtils工具包之前我们需要的Jar包有以下几种: (1)   BeanUtils相 ...

  2. http协议说明

    今天公司有同事让我给他讲一讲http..然后自己写了一个示例代码,这如果都看不懂.那我也没办法了.... <?php //这里服务器以apache举例.nginx.iis.他们实际上处理方式的都 ...

  3. 引用 - PHP手册笔记

    引用是什么 PHP中的引用意味着,用不同的变量名访问同一变量内容,类似于Unix的文件名和文件本身(变量名是目录条目,变量内容是文件本身,即用不同的目录条目访问同一文件),可以看做Unix文件系统中的 ...

  4. Oracle EBS-SQL (OM-1):查询订单发货明细.sql

    select mtrh.request_number                  发货单号,       mmt.transaction_date                  发货时间,  ...

  5. C语言的本质(29)——C语言与汇编之寄存器和寻址方式

    x86的通用寄存器有eax.ebx.ecx.edx.edi.esi.这些寄存器在大多数指令中是可以任意选用的,比如movl指令可以把一个立即数传送到eax中,也可传送到ebx中.但也有一些指令规定只能 ...

  6. 协方差cov

    摘录wiki如下(红色字体是特别标注的部分): http://zh.wikipedia.org/wiki/%E5%8D%8F%E6%96%B9%E5%B7%AE 协方差 协方差(Covariance) ...

  7. Aix5~6小机运维

    1,0516-787 extendlv: Maximum allocation for logical volume hd3        is 512 smitt chlv改max logical ...

  8. [转]Java汉字按照拼音排序

    最近项目上使用到汉字排序的问题,网上搜索了一下后普遍使用下面的方法比较. @Test public void test_sort_pinyin() { Collator cmp = Collator. ...

  9. C#接口的使用【转】

    我们定义一个接口public interface IBark{   void Bark();}再定义一个类,继承于IBark,并且必需实现其中的Bark()方法public class Dog:IBa ...

  10. android之存储篇_存储方式总览

    作为一个完成的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File. ...