thinkphp验证功能(部分)

一.静态验证

  1.前端代码:常规 <form> 提交表单  代码:略

  2.后台模板代码

  

<?php
namespace HomeModel;
use ThinkModel;
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 HomeController;
use ThinkController;
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.前端代码:
  
<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 HomeController;
use ThinkController;
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");
            }
        
        }
    }
}

 //静态验证 1.方便:user表可直接用来进行验证.
//          2.死板:写死的内容,一般不去更改,改也麻烦
//         3.验证写在模板文件下,都是数组方式书写:详见手册
//         4.写验证规则须创建子类(父类无需验证规则) D("user");
//         5.静态验证:不论数据库是否由此字段,都可以验证
//         动态验证:必须数据库存在的字段才可验证
//         6.D("user"); 写动态验证是造子类对象,必须注释模板内的验证代码,验证规则写在控制器内
       M("user");

验证方法二择其一,不能混合使用


原文地址:https://www.cnblogs.com/zhangbaobao/p/7205089.html