zoukankan      html  css  js  c++  java
  • [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> ";
            }
        }
    }
     
    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();
        $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表单验证也非常方便实用。

      PHP网站开发教程-leapsoul.cn版权所有,转载时请以链接形式注明原始出处及本声明,谢谢。

  • 相关阅读:
    ASCII码表以及不同进制间的O(1)转换
    四则运算表达式的语法分析
    语法分析器初步学习——LISP语法分析
    ASC与HEX之间的转换
    字节存储数据
    进制之间的转换
    java多线程CountDownLatch
    java反射机制
    java注解
    使用javafx实现视频播放器
  • 原文地址:https://www.cnblogs.com/zsmynl/p/3537187.html
Copyright © 2011-2022 走看看