thinkphp验证功能(部分)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp验证功能(部分)相关的知识,希望对你有一定的参考价值。
一.静态验证
1.前端代码:常规 <form> 提交表单 代码:略
2.后台模板代码
<?php namespace Home\Model; use Think\Model; class userModel extends Model{ protected $_validate = array( array("uid","require","用户名不能为空"), array("pwd1","require","密码不能为空"), array("pwd2","pwd1","两次输入的密码不一致",0,"confirm"), array("age","18,50","年龄不在范围内",0,"between"), array("email","email","邮箱格式不正确"), ); }
3.后台控制器代码
<?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function yanzheng(){ $u = M("User"); if(empty($_POST)){ $this->show(); }else{ if($u->create()){//验证 echo"验证通过"; }else{ echo $u->getError();//获取错误信息 } } } }
//静态验证 1.方便:user表可直接用来进行验证.
// 2.死板:写死的内容,一般不去更改,改也麻烦
// 3.验证写在模板文件下,都是数组方式书写:详见手册
// 4.写验证规则须创建子类(父类无需验证规则) D("user");
// 5.静态验证:不论数据库是否由此字段,都可以验证
// 动态验证:必须数据库存在的字段才可验证
// 6.D("user"); 写动态验证是造子类对象,必须注释模板内的验证代码,验证规则写在控制器内
M("user");
验证方法二择其一,不能混合使用
二.动态验证
1.前端代码:
<body> <form action="__ACTION__" method="post"> <input type="text" name="Uid" id="uid" /><span id="ts"></span> <input type="submit" value="验证" /> </form> </body> </html> <script type="text/javascript"> $("#uid").blur(function(){ var uid = $(this).val(); $.ajax({ url:"__ACTION__", data:{Uid:uid}, //此处与静态验证不同,区分大小写 type:"POST", dataType:"TEXT", success: function(data){ alert(data); if(data.trim()=="OK"){ $("#ts").html("通过"); }else{ $("#ts").html("用户名不能为空"); } } }) }) </script>
2.后台模板代码
<?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function yz(){ $u = D("User"); if(empty($_POST)){ $this->show(); }else{ $rules = array("Uid","require","用户名不能为空"); if($u->validata($rules)->create()){ $this->ajaxReturn("OK","eval"); }else{ $this->ajaxReturn("NO","eval"); } } } }
以上是关于thinkphp验证功能(部分)的主要内容,如果未能解决你的问题,请参考以下文章