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 Home\Model;
use Think\Model;
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}((0\d)|(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 \Home\Model\YongHuModel();
            $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 Home\Controller;
use Think\Controller;
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 \Think\Verify();
        $Verify->entry();
    }

    public function tianjia()
    {
        if(empty($_POST))
        {
            $this->show();    //显示页面
        }
        else
        {

        }
    }

over~~~

时间: 2024-10-25 21:17:17

tp框架验证信息的相关文章

tp框架表单验证

之前的表单验证都是用js写的,这里也可以使用tp框架的验证.但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降. 自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证.验证的代码要写在模型层即Model里面. 数据验证有两种方式: 静态方式:在模型类里面通过$_validate属性定义验证规则.静态方式定义好以后其它地方都可以使用. 动态方式:使用模型类的validate方法动态创建自动验证规

tp框架表单验证 及ajax

之前的表单验证都是用js写的,这里也可以使用tp框架的验证.但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降. 自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证.验证的代码要写在模型层即Model里面. 数据验证有两种方式: 静态方式:在模型类里面通过$_validate属性定义验证规则.静态方式定义好以后其它地方都可以使用. 动态方式:使用模型类的validate方法动态创建自动验证规

TP框架自带的正则验证的规则(转载)

thinkphp框架里面自带有很多自动验证的规则,下面是框架自带的正则验证的规则,官方的说明文档里面没有这么多,所以记下来,以备使用. view sourceprint?01static $regex = array(02         'require'=> '/.+/', //匹配任意字符,除了空和断行符03         'email' => '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/',04         'phone' =&

tp框架报“mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead” 警告信息

警告信息是“mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead……\ThinkPHP\Library\Think\Db\Driver\Mysql.class.php 第 52 行.” 就是建议你用mysqli或者pdo连连接数据库,因为mysql_connect()在未来将要被移除: 这只是一个警告信息,当做没看见也阔以,去p

tp框架点击刷新验证

html 中 <img class="cimg" src="__URL__/verify?id=2>" width="50" height="22" onclick=""http://blog.51cto.com/viewpic.php?refimg=" + this.src='__URL__/verify/'+Math.random()" /></td>

TP框架如何绑定参数。目的进行ajax验证

TP框架的自动绑定 对于某些操作的情况(例如模型的写入和更新方法),可以支持参数的自动绑定,例如: 首先需要开启DB_BIND_PARAM配置参数: 'DB_BIND_PARAM' => true 然后,我们在使用 1.$Model = M('User'); 2.$Model->name = 'thinkphp'; 3.$Model->email = '[email protected]'; 4.$Model->add(); 会自动对写入的数据进行参数绑定操作.其操作等效于: 1.

TP框架---Model模型层---做模型对象

TP框架----Model模型层---------------做模型对象 Model模型层是用来做什么的呢???? 主要是用来做操作数据库访问的. 也就说明TP框架自带了一种访问数据库的方式,使用的是Model模型. Model模型怎样使用呢??? 要使用Model模型层访问数据库的话,需要做配置,因为必须把数据库的一些参数配置好之后,才能连接,所以找到Config.php 配置文件,打开 这些是关于数据库的配置, 要把这些粘贴到config.php 进行修改. config.php配置文件(修

如何运用tp框架编写网站的无刷新登入

为了方便,我们可以重新建立一个名为LoginController.class.php的控制器;其内容如下: <?php namespace Admin\Controller;//设置命名空间 use Think\Controller; class LoginController extends Controller{ public function index(){ //这是登入成功后跳转的界面,需要模板渲染,然后调用 $this->display();//渲染模板 } public func

TP框架---thinkphp基础知识

php框架    发瑞 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳定的运行阶段 项目停止运行(旧项目的人员已经全部离职,新人开发新项目)   二.问题: 1. 多人开发项目,分工不合理,(html   php   mysql) 2. 代码风格不一样,后期维护十分困难 3. 项目生命周期十分短,项目生命没有延续性,造成资源浪费.人员浪费