热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHPForm表单验证:PHPformvalidator使用说明

在PHP网站开发建设中,用户注册、留言是必不可少的功能,用户提交的信息数据都是通过Form表单提交,为了保证数据的完整性、安全性,PHPForm表单验证是过滤数据的首要环节,PHP对表单提交数据的验证方式多种多样,早期一般使用Javascript
在PHP网站开发建设中,用户注册、留言是必不可少的功能,用户提交的信息数据都是通过Form表单提交,为了保证数据的完整性、安全性,PHP Form表单验证是过滤数据的首要环节,PHP对表单提交数据的验证方式多种多样,早期一般使用Javascript对PHP表单进行验证,随着WEB2.0时代的到来,考虑到用户体验,使用Jquery Form表单验证插件是常用手法,今天我要介绍的是一个PHP表单验证类PHP form validator,其可应用于一般的PHP表单验证,也可以和第三方程序或Javascript整合进行表单验证,更可以自定义具体的PHP表单验证规则,PHP form validator使用起来非常方便。

  PHP form validator表单验证类使用说明

  1、下载PHP form validator,并解压至PHP环境配置设定的网站运行目录

  2、创建一个有待验证的Form表单,创建最常用的选项,比如用户名,Email,留言框等,具体的PHP表单验证实例源码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

require_once "formvalidator.php";
$show_form=true;
if(isset($_POST['Submit']))
{
    $validator = new FormValidator();
    $validator->addValidation("Name","req","请填写用户名");
    $validator->addValidation("Email","email","请填写正确的Email地址");
    $validator->addValidation("Email","req","请填写Email地址");
    if($validator->ValidateForm())
    {
        echo "PHP表单验证成功,谢谢你对www.leapsoul.cn的支持";
        $show_form=false;
    }
    else
    {
        echo "错误提示:";
 
        $error_hash = $validator->GetErrors();
        foreach($error_hash as $inpname => $inp_err)
        {
          echo "

$inpname : $inp_err

\n"
;
        }
    }
}
 
if(true == $show_form)
{
?>

Name:
Email:



}//true == $show_form
?>

  PHP form validator表单验证源码实例解读

  第1行:要启用PHP form validator表单验证类,首先第一步需要将formvalidator.php require进来。

  第3行:$show_form是用来控制表单显示的开关,默认显示表单。

  第6~9行:当提交需要验证处理的表单时,首先创建一个PHP表单验证类的实体,并添加表单中需要验证的选项,在代码实例中主要验证用户名(Name)和Email地址两个选项。

  addValidation函数的三个参数特别说明:第一个参数代表需要验证的表单中的项目,即input name;第二个参数代表验证的规则描述,比如必填、字符长短等,各种验证规则下面会介绍;第三个参数代表当表单验证不通过时需要显示的错误信息。

  第10~24行:通过PHP form validator表单验证类的ValidateForm()函数来判断表单是否通过验证,如果没有通过验证则显示错误信息,这段代码自由度很大,你可以根据需要修改,比如跳转到具体页面都是可以实现的。

  至此,PHP form validator表单验证类最基础的使用方法就介绍完了,如果其定义的表单验证规则不符合你的需要,你可以自行定制具体的验证规则,方法如下

  1、创建一个继承了自定义验证类CustomValidator的子类,比如MyValidator,并重写DoValidate()函数功能,即

1
2
3
4
5
6
7
8
9
10
11
12
13
14

class MyValidator extends CustomValidator
{
    function DoValidate(&$formars,&$error_hash)
    {
        if(stristr($formars['Comments'],'http://'))
        {
            $error_hash['Comments']="留言内容不能有URL地址";
            return false;
        }
    return true;
    }
}
?>

  在上述代码中自定义了一个表单验证规则,即留言内容中不能包含URL地址。

  2、将自定义的表单验证规则添加到已有的表单验证规则中,即

1
2
3
4
5
6
7
$validator = new FormValidator();
    $validator->addValidation("Name","req","请填写用户名");
    $validator->addValidation("Email","email","请填写正确的Email地址");
    $validator->addValidation("Email","req","请填写Email地址");

    $custom_validator = new MyValidator();
    $validator->AddCustomValidator($custom_validator);

  自定义的表单验证规则在其他表单验证结束后会自动调用。

  至此,PHP form validator表单验证类的自定义验证规则的使用方法就介绍完了,除此之外PHP form validator表单验证类还可以结合Javascript或第三方JS、PHP类库进行表单验证,扩展性非常强,更多PHP form validator表单验证实例请参考下载文件中的示例代码。下面介绍PHP form validator表单验证类的默认验证规则

  PHP form validator表单验证类的验证规则说明

  req 必填
  maxlen=??? 检查输入数据的最大长度为多少,比如允许最大长度为25,则给出maxlen=25的验证描述
  minlen=??? 检查输入数据的最小长度为多少,比如允许最小长度为5
  alnum 只允许字母和数字
  alnum_s 只允许字母、数字及空格
  num 检查数字数据
  alpha 检查字母数据
  alpha_s 允许字母和空格
  email 有效的Email地址

  lt=???
  lessthan=??? 验证数据是否小于给定的值,只适用于数字字段,比如,如果值小于1000,即lt=1000

  gt=???
  greaterthan=??? 验证数据是否大于给定的值,只适用于数字字段,比如,如果值大于10,即lt=10

  regexp=??? 验证数据是否与给定的正则表达式匹配
  dOntselect=?? 验证是否选择了select选项,select选项列表中有一个选项是”请选择”。如果不能选择的选项是”请选择”,需要将dontselect值设定为”请选择”
  dontselectchk 这个验证描述是针对check boxes(复选框),用户不能选择设定的复选框
  shouldselchk 用户需选择设定的复选框
  dontselectradio 这个验证描述是针对radio button(单选按钮),用户不能选择设定的单选按钮
  selectradio 用户需选择给定的单选按钮
  selmin=?? 复选框组中至少要选择多少个复选框,比如selmin=3
  selone 用户至少需从单选按钮组中选择一项
  eqelmnt=??? 比较Form表单中的两个元素并确认值是否相同,比如”密码”(password)和”确认密码”(confirm password),替代???的值以input element的name为准,比如eqelmnt=confirm_pwd

  OK,PHP form validator表单验证类的验证规则说明就介绍完了,翻译得不好或理解有问题的不妨多动手或留言。

  只要演示下PHP form validator表单验证类中的几个验证示例,你会发现其用户体验绝不比Jquery之类的表单验证插件差,而且自定义PHP表单验证也非常方便实用。


推荐阅读
  • Jquery 跨域问题
    为什么80%的码农都做不了架构师?JQuery1.2后getJSON方法支持跨域读取json数据,原理是利用一个叫做jsonp的概念。当然 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • 本文介绍了在满足特定条件时如何在输入字段中使用默认值的方法和相应的代码。当输入字段填充100或更多的金额时,使用50作为默认值;当输入字段填充有-20或更多(负数)时,使用-10作为默认值。文章还提供了相关的JavaScript和Jquery代码,用于动态地根据条件使用默认值。 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
  • mui框架offcanvas侧滑超出部分隐藏无法滚动如何解决
    web前端|js教程off-canvas,部分,超出web前端-js教程mui框架中off-canvas侧滑的一个缺点就是无法出现滚动条,因为它主要用途是设置类似于qq界面的那种格 ... [详细]
  • JavaScript - let和var区别
    前提ES5只有函数作用域和全局作用域,var属于ES5。let属于ES6,新增块级作用域。目的是可以写更安全的代码。Theletstatementdeclaresablocks ... [详细]
  • 随着前端技术的发展,越来越多的开发者开始使用react、vue等web框架,但很少有人深入理解这些框架的源码。然而,这些框架底层都是由原生的javascript构建而成。对于初学前端的人来说,可能会认为javascript很容易上手,但实际上只是因为它被高度封装了。与能够使用封装类的人相比,能够理解框架原理的人则处于另一个层面。本文将深入剖析jquery源码,探寻框架底层的原理,帮助读者更好地理解web框架的运行机制。 ... [详细]
  • javascript如何判断值是否为undefined
    这篇文章主要介绍“javascript如何判断值是否为undefined”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ja ... [详细]
author-avatar
文逸博166293
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有