tp框架验证信息

今天在这里我们学习一下tp框架里面怎么做验证。

验证又分为两种:静态验证、动态验证

 

首先,我们还是先做一个html界面,名为add.html。代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<form action="__ACTION__" method="post">
    <div>账号:<input type="text" name="uid" /></div>
    <div>密码:<input type="text" name="pwd" /></div>
    <div>确认密码:<input type="text" name="pwd1" /></div>
    <div>姓名:<input type="text" name="name" /></div>
    <div>邮箱:<input type="text" name="email" /></div>
    <div>年龄:<input type="text" name="age" /></div>
    
    <br />
    <div><input type="submit" value="添加" /></div>
</form>

</body>
</html>

静态验证:写在模型类里面

用静态方法的话,必须要在Model模型里面写方法

新建文件:YongHuModel.class.php

代码如下:

<?php
namespace HomeModel;
use ThinkModel;
class YongHuModel extends Model
{
    protected $tablePrefix = "";
    protected $trueTableName = 'yonghu';        //真实表名
    protected $_validate = array(
    
        //验证是按照代码顺序执行
        array('uid','require','用户名不能为空!'),        //验证用户名
        array('pwd','pwd1','两次输入的密码不一致!',0,'confirm'),    //验证两个字段是否相同
        array('email','email','邮箱格式不正确!'),        //验证邮箱格式
        array('name','/^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}([0-9]|X)$/','身份证号不正确!','regex'),       
     //用regex 验证规则需要写正则表达式 array('age','18,50','年龄不在范围内',0,'between') //验证年龄范围 ); }

接下来我们要去做后台操作方法了

//静态验证
    public function add()
    {
        if(empty($_POST))
        {
            $this->show();
        }
        else
        {
            $yh = new HomeModelYongHuModel();
            $r =$yh->create();        //create方法自动验证,验证通过返回true

            
            if($r)
            {
                $yh->add();        //添加成功
            }
            else
            {
                die($yh->getError());     //添加失败,返回错误信息
            }

静态方法完事,我们再来看一下动态方法

动态方法:什么时候用验证什么时候写验证

动态方法我们只写后台就可以了。


public function add()
{

        $yh = D("YongHu");

$arr = array(
                array('uid','require','用户名不能为空!'),        //验证用户名
                array('pwd','pwd1','两次输入的密码不一致!',0,'confirm'),    //验证两个字段是否相同
                
                //如果要进行批量验证,需要在模型类里面设置  protected $patchValidate = true;
            );
            
            if($yh->validate($arr)->create())        //用validate方法把验证加进来
            {
                $yh->add();
            }
            else
            {
                die($yh->getError());
            }
            
        }
    }

到这里,就告一段落了。

但是,在开发的时候我们用tp框架的ajax比较多,那么用ajax怎么进行验证呢?不要着急,我们接下来就看一下怎么实现

ajax动态验证

<?php
namespace HomeController;
use ThinkController;
class TestController extends Controller
{
    //ajax动态验证
    public function test()
    {
        $yh = D("YongHu");    //造父类
        $arr = array(
            array('uid','require','用户名不能为空!'),    //验证
        );
        
        if($arr)
        {
            $this->ajaxReturn("通过验证","eval");    //通过验证
        }
        else
        {
            $this->ajaxReturn($yh->getError(),"eval");        //返回错误信息
        }
        
        $Verify = new ThinkVerify();
        $Verify->entry();
    }
    
    public function tianjia()
    {
        if(empty($_POST))
        {
            $this->show();    //显示页面
        }
        else
        {
            
        }
    }

over~~~

原文地址:https://www.cnblogs.com/u1020641/p/6228539.html