zoukankan      html  css  js  c++  java
  • 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~~~

  • 相关阅读:
    Linux下的”锁“事儿
    拿得起,放得下,想得开
    关于TCP协议握手的那些事儿

    C++中的RTTI机制解析
    C/C++中产生随机数
    数据库-事务和锁
    JS 数组Array常用方法
    C# 压缩 SharpZipLib
    正则表达式学习3-负向零宽断言
  • 原文地址:https://www.cnblogs.com/u1020641/p/6228539.html
Copyright © 2011-2022 走看看