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