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~~~
tp框架验证信息的更多相关文章
- tp框架表单验证
之前的表单验证都是用js写的,这里也可以使用tp框架的验证.但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降. 自动验证是ThinkPHP模型层提供的一种 ...
- tp框架表单验证 及ajax
之前的表单验证都是用js写的,这里也可以使用tp框架的验证.但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降. 自动验证是ThinkPHP模型层提供的一种 ...
- tp框架之自动验证表单
tp框架的create自动加载表单的方法可以自动根据自己定义的要求来验证表单里面的内容,但是由于是在后台执行代码,会拖慢程序运行速度,所以还是建议通过前端js来进行判断,后台只进行数据库的查询以及传值 ...
- TP框架---thinkphp表单验证
自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证.验证的代码要写在模型层即Model里面. 数据验证有两种方式: 静态方式:在模型类里面 ...
- TP框架自带的正则验证的规则(转载)
thinkphp框架里面自带有很多自动验证的规则,下面是框架自带的正则验证的规则,官方的说明文档里面没有这么多,所以记下来,以备使用. view sourceprint?01static $regex ...
- TP框架如何绑定参数。目的进行ajax验证
TP框架的自动绑定 对于某些操作的情况(例如模型的写入和更新方法),可以支持参数的自动绑定,例如: 首先需要开启DB_BIND_PARAM配置参数: 'DB_BIND_PARAM' => tru ...
- tp框架集成支付宝,中转页变成gbk编码
tp框架中集成支付宝的功能,将支付宝的demo例子存在到下图位置\Extend\Vendor\Alipay 生成支付订单 /** * 支付订单 */ public function pay() { h ...
- TP框架 基础1
php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...
- TP框架---Model模型层---做模型对象
TP框架----Model模型层---------------做模型对象 Model模型层是用来做什么的呢???? 主要是用来做操作数据库访问的. 也就说明TP框架自带了一种访问数据库的方式,使用的是 ...
随机推荐
- css-列表或标题的多级计数
利用css实现多级计数,比如1/1.1/1.1.1这种层层嵌套的计数,主要利用到counter-reset/counter-increment/counter/content/:before. 一.标 ...
- HTML隐藏的方法
display:none; 表单 type="hidden" 宽高设为0 height:0;width:0; 祖先元素隐藏或在页面外 margin Visibility:hidde ...
- bzoj3506 [Cqoi2014]排序机械臂
bzoj3506 此题是一道比较简单的spaly题目. 用splay维护序列,将每个点排到对应的位置之后删除,这样比较容易区间翻转. 我的指针写法在洛谷上AC了,但在bzoj上RE. #include ...
- loss function
什么是loss? loss: loss是我们用来对模型满意程度的指标.loss设计的原则是:模型越好loss越低,模型越差loss越高,但也有过拟合的情况. loss function: 在分 ...
- Tlist删除技巧
二. 从TList开始分析-- 为了写一个更好的性能ISAPI Filter,我需要更快速地从TList中删除部分连续的Item.比如这样的一段代码: var p : pChar = 'abcd ...
- C++重载new和delete运算符
内存管理运算符 new.new[].delete 和 delete[] 也可以进行重载,其重载形式既可以是类的成员函数,也可以是全局函数.一般情况下,内建的内存管理运算符就够用了,只有在需要自己管理内 ...
- Java使用Fork/Join框架来并行执行任务
现代的计算机已经向多CPU方向发展,即使是普通的PC,甚至现在的智能手机.多核处理器已被广泛应用.在未来,处理器的核心数将会发展的越来越多. 虽然硬件上的多核CPU已经十分成熟,但是很多应用程序并未这 ...
- SQL中部分语法整理
1.SELECT DISTINCT 语句 关键词DISTINCT用于返回唯一不同的值. 语法: SELECT DISTINCT 列名称 FROM 表名称 2.SELECT INTO语句 SELECT ...
- 【转】真正从零开始,TensorFlow详细安装入门图文教程!(帮你完成那个最难的从0到1)
AI这个概念好像突然就火起来了,年初大比分战胜李世石的AlphaGo成功的吸引了大量的关注,但其实看看你的手机上的语音助手,相机上的人脸识别,今日头条上帮你自动筛选出来的新闻,还有各大音乐软件的歌曲& ...
- 12月5日PHPCMS替换主页
cms替换主页的步骤 1.先做好静态页面: 2.在D:\wamp\www\phpcms\install_package\phpcms\templates文件夹下建新的文件夹tianqiwangluo( ...