php---tp框架---表单验证

自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证。分为静态验证和动态验证。

关于基础知识,请查看手册“自动验证”一章。

一、静态验证

(1)在Ceshi/Controller/路径下新建Yanzheng控制器。

YanzhengController.class.php页面

注意:静态定义方式因为必须定义模型类,所以只能用D函数实例化模型

     create方法是对表单提交的POST数据进行自动验证

<?php
namespace Ceshi\Controller;
use Think\Controller;
class YanzhengController extends  Controller
{

		   public function jtyz(){
		   	$n= D("users");

		   	if(empty($_POST)){

		   		$this->show();

		   	}else{
		   	 //验证要在model层写
			      if($n->create()){
			      	echo "验证通过!";
			      }else{
			      	echo $n->getError();  //获取错误信息
			      }
		   	}
		}

  public function _empty(){
   	echo "您访问的操作方法不存在!";
   }
}

 (2)在view层做jtyz.html页面

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<form action="__ACTION__" method="post">
		<div> 用户名:<input type="text" name="uid"></div>
		<div> 请输入密码:<input type="text" name="pwd1"></div>
		<div> 请再次输入密码:<input type="text" name="pwd2"></div>
		<div> 年龄:<input type="text" name="age"></div>
		<div> 邮箱:<input type="text" name="email"></div>
		<input type="submit" value="验证" />
		</form>
	</body>
</html>

  效果图:

(3)在model层写静态验证的验证:(路径如图)

UsersModel.class.php

<?php
namespace Ceshi\Model;
use Think\Model;
class UsersModel extends Model
{
	 protected $_validate = array(
	 //非空验证
	 array("uid","require","用户名不能为空"),
	 //相等验证
	 array("pwd1","require","密码不能为空"),
	 array("pwd2","pwd1","两次密码输入不一致","0","confirm"),
	 //范围验证
	  array("age","18,30","年龄不在范围内","0","between"),
	 //正则验证
	  array("email","email","邮箱格式不正确"),
	  );
}

  

依次验证效果图:

当全部为空时,点击验证

提示:

 当输入用户名后,点击验证:

显示:

两次密码输入不一致时,会提示;年龄不在范围内会提示;邮箱格式不正确时会提示;否则会提示验证通过。

二、动态验证

(1)  YanzhengController.class.php页面

<?php
namespace Ceshi\Controller;
use Think\Controller;
class YanzhengController extends  Controller
{

 //非空验证 静态
//		   public function jtyz(){
//		   	$n= D("users");
//
//		   	if(empty($_POST)){
//
//		   		$this->show();
//
//		   	}else{
//		   		 //验证要在model层写
//			      if($n->create()){
//			      	echo "验证通过!";
//			      }else{
//			      	echo $n->getError();  //获取错误信息
//			      }
//		   	}
//		}
//动态
		 public function dtyz(){

		   	if(empty($_POST)){
		   		$this->show();
		   	}
		   	else
		   	{
		   		//验证规则
		   	    $rules = array(
                array(‘uid‘,‘require‘,‘用户名不能为空!‘),
                 );

				 $u= M("users");

			      if($u->validate($rules)->create()){
			      	$this->ajaxReturn("OK","eval"); //如果成功
			      }else{
			      	$this->ajaxReturn($u->getError(),"eval");  //如果不成功
			      }

		   	}
		}
  public function _empty(){
   	echo "您访问的操作方法不存在!";
   }
}

  (2) dtyz.html页面:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<!--引入js-->
		<script src="__ROOT__/Public/js/jquery-1.11.2.min.js"></script>
	</head>
	<body>
		<form action="__ACTION__" method="post">
		<div> 用户名:<input type="text" name="uid" id="uid"><span id="ts"></span></div>
		<input type="submit" value="验证" />
		</form>
	</body>
	<script>
		//文本框失去焦点时,显示提示信息
		$("#uid").blur(function(){
			var uid = $(this).val();
			$.ajax({
				url:"__ACTION__",
				data:{uid:uid},
				type:"POST",
				dataType:"TEXT",
				success:function(data){
					alert(data);
					 if(data.trim()=="OK")
					 {
					 	$("#ts").html("验证通过!");
					 }else{
					 	$("#ts").html("用户名不能为空!");
					 }
				}
			});
		})
	</script>
</html>

  看一下效果:

当文本框失去焦点时:

当文本框有内容时,再失去焦点:

时间: 2024-10-09 21:01:42

php---tp框架---表单验证的相关文章

tp框架表单验证

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

tp框架表单验证 及ajax

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

TP框架---表单验证

自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证.分为静态验证和动态验证. 关于基础知识,请查看手册"自动验证"一章. 一.静态验证 (1)在Home/Controller/路径下新建Index控制器.IndexController IndexController.class.php页面 注意:静态定义方式因为必须定义模型类,所以只能用D函数实例化模型     create方法是对表单提交的POST数据进行自动验证 <

ThinkPHP框架表单验证

对注册到test表的表单进行验证 在注册之前要对表单进行验证: 用户名非空验证,两次输入密码必须一致即相等验证,年龄在18~50之间即范围验证,邮箱格式正则验证. 自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 数据验证可以进行数据类型.业务规则.安全判断等方面的验证操作. 数据验证有两种方式: 静态方式:在模型类里面通过$_validate属性定义验证规则. 动态方式:使用模型类的validate方法动态创建自动验证规则. 无

php--yii框架表单验证

在视图层利用表单小部件生成表单时,field只能是数据库中存在的, 例如:use yii\helpers\Html; use yii\widgets\ActiveForm; use yii\captcha\Captcha; 'sign-form', 'options'=>['action'=>'usermessage/signform', 'method'=>'post', 'enctype'=>'multipart/form-data']]); ?> field($mode

laravel框架——表单验证

创建路由 Route::get('test','[email protected]'); Route::post('tosubmit','[email protected]'); 在控制器中编辑代码 class VerController extends Controller { //表单页面 public function index() { return view('from.from'); } //表单提交验证 //这种是用自带的Request进行验证 // public function

Laravel 5框架表单验证代码

在命令行下运行 php artisan 可以看到一个选项 make:request,新建一个form request类.在命令行执行 php artisan make:request CreateArticleRequest 生成的文件在 app/http/requests 目录下.在文件中我们可以看到两个方法: public function authorize() { return false; }   public function rules() { return [  // ]; }

TP表单验证

[表单验证] javascript jquery 在服务器端通过tp框架实现表单验证 用户名.密码.重复密码.邮箱.qq.手机号码.爱好.学历 具体步骤: 制作表单 表单form数据通过create()方法收集(验证功能要求我们必须通过create()方法收集数据) 自定义数据model模型类实现具体验证规则

[JavaWeb基础] 015.Struts2 表单验证框架

在web开发的过程中,我们经常要用到一些填写表单的操作,我们一般都要在提交表单信息的时候对表单的内容进行验证,struts2给我们提供了简单的实现接口,让我们可以很容易的对表单进行验证.下面讲解下最传统的方法配置表单验证框架,还有更简单明了的就是利用注解,这里就不解释了. 1.首先我们要在要进行配置的Action的同级目录下,新建一个.xml文件,命名格式为:ActionClassName-validation.xml. 例如我的Action类名为:RegisterAction   那么xml名