今天在这里我们学习一下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~~~

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

  1. tp框架表单验证

    之前的表单验证都是用js写的,这里也可以使用tp框架的验证.但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降. 自动验证是ThinkPHP模型层提供的一种 ...

  2. tp框架表单验证 及ajax

    之前的表单验证都是用js写的,这里也可以使用tp框架的验证.但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降. 自动验证是ThinkPHP模型层提供的一种 ...

  3. tp框架之自动验证表单

    tp框架的create自动加载表单的方法可以自动根据自己定义的要求来验证表单里面的内容,但是由于是在后台执行代码,会拖慢程序运行速度,所以还是建议通过前端js来进行判断,后台只进行数据库的查询以及传值 ...

  4. TP框架---thinkphp表单验证

    自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证.验证的代码要写在模型层即Model里面. 数据验证有两种方式: 静态方式:在模型类里面 ...

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

    thinkphp框架里面自带有很多自动验证的规则,下面是框架自带的正则验证的规则,官方的说明文档里面没有这么多,所以记下来,以备使用. view sourceprint?01static $regex ...

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

    TP框架的自动绑定 对于某些操作的情况(例如模型的写入和更新方法),可以支持参数的自动绑定,例如: 首先需要开启DB_BIND_PARAM配置参数: 'DB_BIND_PARAM' => tru ...

  7. tp框架集成支付宝,中转页变成gbk编码

    tp框架中集成支付宝的功能,将支付宝的demo例子存在到下图位置\Extend\Vendor\Alipay 生成支付订单 /** * 支付订单 */ public function pay() { h ...

  8. TP框架 基础1

    php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...

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

    TP框架----Model模型层---------------做模型对象 Model模型层是用来做什么的呢???? 主要是用来做操作数据库访问的. 也就说明TP框架自带了一种访问数据库的方式,使用的是 ...

随机推荐

  1. struts2.5的配置及其注意事项

    坑爹的apache,官方的jar包提供了一个struts2的运行最小jar包

  2. Django models .all .values .values_list 几种数据查询结果的对比

    Django models .all .values .values_list 几种数据查询结果的对比

  3. css定位

    文档流 所谓的文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列.并最终窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素.脱离文档流即是元素打乱了这个排列,或是从排版 ...

  4. Python JPype 在 Win7 下安装与使用

    JPype 是 Python调用 Java 代码的模块,需要Java SE Runtime Environment (JRE)的支持. 个人安装环境: Windows 7 64bit + Python ...

  5. Jmeter教程 简单的压力测试

    Jmeter教程 简单的压力测试:http://www.cnblogs.com/TankXiao/p/4059378.html

  6. [Java] JSP笔记 - Listener 监听器

    Java Web 开发时,可以使用 Listener 来监听来监听一些事件,从而实现一些功能.实际上这个监听器,原理就是 Delphi 中大家常用的各种事件. 1. 那么,监听器的主要用途用哪些呢: ...

  7. URL-Short

    Fortify URL http://www.hpenterprisesecurity.com/vulncat/en/vulncat/index.html 1.Arstechnica http://a ...

  8. PHP陷阱,一些注意事项

    判断的一些注意事项 count(false) > 0 // true count(0) > 0 // true "随便一个字符串" == 0 // true " ...

  9. mySql 远程连接(is not allowed to connect to this MySQL server)

    如果你想连接你的mysql的时候发生这个错误: ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL serve ...

  10. 第一届山东省ACM——Balloons(java)

    Description Both Saya and Kudo like balloons. One day, they heard that in the central park, there wi ...