[php基础]PHP Form表单验证:PHP form validator使用说明
在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 |
<?php
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 "<p>$inpname : $inp_err</p>\n"; } } } if(true == $show_form) { ?> <form name='test' method='POST' action='' accept-charset='UTF-8'> Name: <input type='text' name='Name' size='20'> Email: <input type='text' name='Email' size='20'> <input type='submit' name='Submit' value='Submit'> </form> <?php }//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 |
<?php
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(); |
自定义的表单验证规则在其他表单验证结束后会自动调用。
至此,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表单验证也非常方便实用。
注:PHP网站开发教程-leapsoul.cn版权所有,转载时请以链接形式注明原始出处及本声明,谢谢。
[php基础]PHP Form表单验证:PHP form validator使用说明的更多相关文章
- Django基础之Form表单验证
Form表单验证 1.创建Form类(本质就是正则表达式的集合) from django.forms import Form from django.forms import fields from ...
- form表单验证-Javascript
Form表单验证: js基础考试内容,form表单验证,正则表达式,blur事件,自动获取数组,以及css布局样式,动态清除等.完整代码如下: <!DOCTYPE html PUBLIC &qu ...
- python_way day19 HTML-day5 (form表单验证,CSRF,cookie,session,缓存)
python-way day19 1. dJango的form表单验证 2.CSRF 跨站请求伪造 3.cookie,session 4.缓存 一,django表单验证功能 1.django验证基础: ...
- django之form表单验证
django中的Form一般有两种功能: 输入html 验证用户输入 #!/usr/bin/env python # -*- coding:utf- -*- import re from django ...
- form表单验证2
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Day19 Django之Form表单验证、CSRF、Cookie、Session和Model操作
一.Form表单验证 用于做用户提交数据的验证1.自定义规则 a.自定义规则(类,字段名==html中的name值)b.数据提交-规则进行匹配代码如下: """day19 ...
- django form表单验证
一. django form表单验证引入 有时时候我们需要使用get,post,put等方式在前台HTML页面提交一些数据到后台处理例 ; <!DOCTYPE html> <html ...
- Django中的Form表单验证
回忆一下Form表单验证的逻辑: 前端有若干个input输入框,将用户输入内容,以字典传递给后端. 后端预先存在一个Form表单验证的基类,封装了一个检测用户输入是否全部通过的方法.该方法会先定义好错 ...
- 抽屉之Tornado实战(7)--form表单验证
在这里,我们把form表单验证的代码进行工具化了,以后稍微修改一下参数就可以拿来用了 先贴上代码 forms.py from backend.form import fields class Base ...
随机推荐
- 用zepto找到当前被选中的option
$("#dealer").find("option").not(function(){ return !this.selected }).text(); 神奇的 ...
- jquery easy ui 学习 (3) window 限制在父类窗体内
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- function的粗浅理解
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Python的XMLRPC机制:实现跨进程间、client/server端通信
SimpleXMLRPCServer模块式python语言的一个基于 xml 格式的进程间通信的基础框架. SimpleXMLRPCServer是一个单线程的服务器,这意味着,如果几个客户端同时发出多 ...
- 编写优美的GTest测试案例
http://www.cnblogs.com/coderzh/archive/2010/01/09/beautiful-testcase.html 使用gtest也有很长一段时间了,这期间也积累了一些 ...
- 转: 如何用linux命令修改linux主机ip网关子网掩码
linux一般使用ifconfig命令修改linux主机的ip.网关或子网掩码. 1.命令格式: ifconfig [网络设备] [参数] 2.命令功能: ifconfig 命令用来查看和配置网络设备 ...
- linux命令之文件、文件夹操作
文件 创建文件 touch fileName 拷贝文件 基本形式: cp source destination tips: 1) 将文件拷贝纸当前目录 cp source . 2)常用参数 -R -r ...
- Keil C51总线外设操作问题的深入分析
阅读了<单片机与嵌入式系统应用>2005年第10期杂志<经验交流>栏目的一篇文章<Keil C51对同一端口的连续读取方法>(原文)后,笔者认为该文并未就此问题进行 ...
- 【索引】XBox360玩机心得
基础知识 查看XBox360的系统版本信息:http://www.cnblogs.com/duxiuxing/p/4292140.html XBox360光盘游戏的安装: 自制系统 XBox360自制 ...
- Tomcat内存溢出详解【转载】
本文转载自 http://elf8848.iteye.com/blog/378805 Java内存溢出详解 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryEr ...