【问题标题】:Website Form Validation网站表单验证
【发布时间】:2012-03-24 21:38:01
【问题描述】:

我目前正在设计一个网站和数据库解决方案,它允许管理员登录和查看/添加/编辑/删除数据库中保存的数据。

对于人们将在这些表单中输入的详细信息进行表单验证的最佳方法是什么;

即日期必须有约定 xx/xx/xx

【问题讨论】:

标签: php mysql html validation


【解决方案1】:

验证此类数据的方法有很多种,但最流行的方法是使用regular expressions。您可能还想在验证数据格式后检查其他内容。

例如,如果您想检查您的日期,您可以执行以下操作:

function checkDateFormat($date)
{
//match the format of the date
  if (preg_match ("/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/", $date, $parts)) {
  //check weather the date is valid of not
    if(checkdate($parts[2],$parts[3],$parts[1]))
      return true;
    else
      return false;
  } else {
    return false;
  }
}

这不仅会检查日期的格式(在这种情况下是 yyyy/mm/dd,但您可以稍微修改它以支持 yy/mm/dd 或您想要的任何顺序),还会检查它是否有效日期(例如 2001/02/31 不是有效日期)。

【讨论】:

    【解决方案2】:

    您可以通过本机或类似的库来执行此操作。

    本地人:

    //If form was submitted  
    if ($_POST['submitted']==1) {  
      // check date format, ...
      if ($_POST[date]){  
        $date = $_POST[date]; //If date was entered  
      }  
      ...
    }  
    

    或按图书馆:http://pear.php.net/package/HTML_QuickForm2

    <?php
    require_once 'HTML/QuickForm2.php';
    require_once 'HTML/QuickForm2/Rule/Required.php';
    require_once 'HTML/QuickForm2/Rule/Regex.php';
    
    $form = new HTML_QuickForm2('tutorial');
    $username = $form->addElement('text', 'username');
    $form->addElement('submit', null, array('value' => 'Send!'));
    
    $username->addRule(new HTML_QuickForm2_Rule_Required(
        $username, 'Username is required!'
    ));
    ....
    

    【讨论】:

    • 您的解决方案仅说明如何检查是否输入了必填字段
    • 有人要求验证日期示例“即日期必须具有约定 xx/xx/xx”。所以会有更多的字段需要验证其他数据。我举了一个设置字段的例子。
    猜你喜欢
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多