ThinkPHP框架表单验证操作方法

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

一、静态验证

(1)在Home/Controller/路径下新建Index控制器。IndexController

IndexController.class.php页面

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

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

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function yanzheng(){
    $u= D("users");//造一个子类对象
    if(empty($_POST)){
      $this->show();
    }else{
      if($u->create()){//验证
        echo"验证通过";
      }else{
        echo $u->getError();//获取错误信息
      }
    }
  }
}  

(2)在view/Index文件夹下做yanzheng.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>
<script src="__ROOT__/Public/js/jquery-3.2.0.min.js"></script>
</head>
<body>
<h1>验证界面</h1>
<form action="__ACTION__" method="post">
<div>用户名:<input type="text" name="uid" /></div>
<div>密码:<input type="password" name="pwd1"/></div>
<div>确认密码:<input type="password" name="pwd2"/></div>
<div>年龄:<input type="text" name="age"/></div>
<div>邮箱:<input type="text" name="Email"/></div>
<div><input type="submit" value="验证" /></div>
</form>
</body>
</html>

效果图:

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

UsersModel.class.php

<?php
namespace Home\Model;
use Think\Model;
class UsersModel extends Model{
    //添加验证条件
    protected $_validate = array(
      array("uid","require","用户名不能为空!"), //默认情况下用正则进行验证
      array("pwd1","require","密码不能为空!"),
      array("pwd2","require","密码不能为空!"),
      array("pwd2","pwd1","两次输入的密码不一致",0,"confirm"), // 验证确认密码是否和密码一致
      array("age","18,50","年龄不在范围内",0,"between"),
      array("Email","email","邮箱格式不正确"),
    );
}

依次验证效果图:

当全部为空时,点击验证

会跳转

输入用户名,其他不输入时,会跳转

两次密码输入不一致时,会提示;年龄不在范围内会提示;邮箱格式不正确时会提示;

 

输入正确格式内容后

 二、动态验证

(1)  IndexController.class.php页面

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function yz(){
    $u= M("users");//造一个父类对象
    if(empty($_POST)){
      $this->show();
    }else{
      $rules = array(
        array("uid","require","用户名不能为空!"),
      );
      if($u->validate($rules)->create()){//验证
        $this->ajaxReturn("ok","eval");
      }else{
        $this->ajaxReturn("no","eval");
      }
    }
  }
}

(2) yz.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>
<script src="__ROOT__/Public/js/jquery-3.2.0.min.js"></script>
</head>
<body>
<h1>验证界面</h1>
<form action="__ACTION__" method="post">
<div><input type="text" name="uid" id="uid" /><span id="ts"></span></div>
<div><input type="submit" value="验证" /></div>
</form>
</body>
<script type="text/javascript">
$("#uid").blur(function(){
    var uid = $(this).val();
    $.ajax({
        url:"__ACTION__",
        data:{uid:uid},
        type:"POST",
        dataType:"TEXT",
        success: function(data){
            if(data.trim()=="ok")
            {
              $("#ts").html("验证通过");
            }
            else
            {
              $("#ts").html("用户名不能为空");
            }
          }
      });
  })
</script>
</html>

看一下效果:

当文本框失去焦点时:

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

以上所述是小编给大家介绍的ThinkPHP框架表单验证操作方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • php tp验证表单与自动填充函数代码

    复制代码 代码如下: <?php class FormModel extends Model { // 自动验证设置 /* * 一:自动验证 自动验证的定义是这样的:array(field,rule,message,condition,type,when,params) field:代表是数据库的字段名: rule:代表是规则: 它的值要看type的类型而定: 如果是condition 是function(callback),rule是一个函数名 condition 是in,rule是一个数组

  • C# HttpClient Cookie验证解决方法

    自实现的cookie 验证,远程取值的例子 以下代码配合HttpClient使用可以实现跨域(cookie的读写) //验证 复制代码 代码如下: HttpClient httpClient = new HttpClient(url, null, true); httpClient.PostingData.Add(key,value);//登录用户名 httpClient.PostingData.Add(key,value);//密码 string str = httpClient.GetStr

  • php基于表单密码验证与HTTP验证用法实例

    本文实例讲述了php基于表单密码验证与HTTP验证用法.分享给大家供大家参考.具体分析如下: PHP 的 HTTP 认证机制仅在 PHP 以 Apache 模块方式运行时才有效,因此该功能不适用于 CGI 版本.在 Apache 模块的 PHP 脚本中,可以用 header() 函数来向客户端浏览器发送"Authentication Required"信息,使其弹出一个用户名/密码输入窗口.当用户输入用户名和密码后,包含有 URL 的 PHP 脚本将会加上预定义变量 PHP_AUTH_

  • PHP的一个完整SMTP类(解决邮件服务器需要验证时的问题)

    smtp.php <?phpclass smtp { /* Public Variables */ var $smtp_port; var $time_out; var $host_name; var $log_file; var $relay_host; var $debug; var $auth; var $user; var $pass; /* Private Variables */ var $sock; /* Constractor */ function smtp($relay_ho

  • 动态表单验证的操作方法和TP框架里面的ajax表单验证

    动态验证的操作方法 function yz() { if(empty($_POST)) { $this->display(); } else { $db=D("Info"); $shu=array( array("Code","require","代号不能为空",0,"regex",3), ); if(!$db->validate($shu)->create()) { echo $db-&

  • php通过smtp邮件验证登陆的方法

    本文实例讲述了php通过smtp邮件验证登陆的方法.分享给大家供大家参考,具体如下: 内网的系统为了统一账号,都采用用邮件账号登陆的方式,所以有了以下程序 /** * 通过邮件 验证登陆 * 这里要明白的是用户名是 带域名的:aaa@163.com */ function valideEmailLogin($user, $pass, $smtp_server= 'smtp.163.com', $port=25) { $handle = fsockopen($smtp_server, $port)

  • SMTP客户端未通过身份验证等多种错误解决方案分享

    最近在做邮件发送接口 把遇到的问题和解决方法告诉大家  希望对了解邮件的人有所帮助 原程序部分代码如下 //设置邮件信息 发件人地址.收件人地址.标题.主题 MailMessage mail = new MailMessage("xxxxxxx@sina.com", "zzzzzzz@sina.com", "标题", "主题"); //设置邮件主题格式 mail.BodyEncoding = Encoding.UTF8; //

  • Linux编译安装vsftpd服务器(本地用户验证方式)

    Linux vsftpd编译安装和配置允许本地用户登录FTP 1.下载vsftpd源码 wget https://security.appspot.com/downloads/vsftpd-2.3.4.tar.gz 2.编译vsftpd源码 64位的系统编译之前先要执行cp /lib64/libcap.so.1 /lib/libcap.so.1命令: 复制代码 代码如下: tar xzvf vsftpd-2.3.4.tar.gz cd vsftpd-2.3.4 make make install

  • ThinkPHP框架表单验证操作方法

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

  • 关于ThinkPhp 框架表单验证及ajax验证问题

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

  • Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册

    动态验证:(不需要建Model模型) 1.建一个控制器,做表单操作(包含验证) <?php namespace Biaodan\Controller; use Think\Controller; class BiaodanController extends Controller { public function test() { if(empty($_POST))//如果$_POST空,显示添加页面, { $this->show(); } else //如果$_POST不为空,走验证,验证

  • CI框架表单验证实例详解

    本文实例讲述了CI框架表单验证的方法.分享给大家供大家参考,具体如下: 1.form头部信息的自动输出函数(view) <?php $attributes = array('class' => 'email', 'id' => 'myform'); echo form_open('email/send', $attributes); //上面一行代码输出: //<form method="post" accept-charset="utf-8"

  • Laravel框架表单验证格式化输出的方法

    最近在公司的项目开发中使用到了 laravel 框架,采用的是前后端开发的模式.接触过前后端开发模式的小伙伴应该都知道,后端返回的数据格式需要尽可能搞得保证一致性,这样前端在处理时也方便处理.我们先通过观看下面的两张接口返回的效果图吧,这样或许会更加的直观一些. laravel默认的输出格式(图一) 修改后的输出格式(图二) 或许通过上面两张图,你还是未看出有什么区别的话.这里我用文字描述一下吧. 这种情况是发生在laravel做表单验证的情况下发生的.前端向我后端接口发送一个POST请求时,发

  • Laravel框架表单验证操作实例分析

    本文实例讲述了Laravel框架表单验证操作.分享给大家供大家参考,具体如下: public function create(Request $request){ if($request->isMethod('POST')){ //验证通过后继续进行 //方法1 控制器验证 $this->validate($request,[ 'Student.name' => 'required|min:2|max:20', 'Student.age' => 'required|integer'

  • Laravel5.1 框架表单验证操作实例详解

    本文实例讲述了Laravel5.1 框架表单验证操作.分享给大家供大家参考,具体如下: 当我们提交表单时 通常会对提交过来的数据进行一些验证.Laravel在Controller类中使用了一个traint:ValidatesRequest.方便我们在控制器中使用验证器. 下面我们就来看一个验证表单的例子. 1 准备 1.1 创建路由 Route::resource('/post', 'PostController'); 1.2 创建控制器 php artisan make:controller

  • Laravel框架表单验证详解

    基础验证例子 复制代码 代码如下: $validator = Validator::make( array('name' => 'Dayle'), array('name' => 'required|min:5') ); 传递给 make 函数的第一个参数是待验证的数据,第二个参数是对该数据需要应用的验证规则. 多个验证规则可以通过 "|" 字符进行隔开,或者作为数组的一个单独的元素. 通过数组指定验证规则 复制代码 代码如下: $validator = Validator

  • Yii框架表单提交验证功能分析

    本文实例讲述了Yii框架表单提交验证功能.分享给大家供大家参考,具体如下: 一.前端提交的三种方式 前面已经提出,表单提交一共只有三种方式. 1. 前端原生html (1)原生html标签 首先,直接使用html标签的input,a等: 其次,使用css进行布局. 再次,使用js或jquery方式验证 最后,提交(get/post/ajax,目前较多使用jquery提交). 注:该种方式由于较灵活,使用最多. (2)原生form js或jquery方式验证,yii方式提交. 相对灵活 <form

随机推荐