POST 验证循环

Avatar of Chris Coyier
Chris Coyier

假设

您有一个包含各种输入的 HTML 表单。该action属性form指向包含以下代码的 PHP 文件。

关于代码的说明

此代码首先创建一个数组,该数组保存通过 POST 提交的各种输入的namegetFormData()然后被调用,其中传递了必需的字段。在函数内部,创建一个数组来保存与表单相关的各种数据片段。$formData['valid'] 是一个布尔值,表示是否提供了所有数据并且数据有效,$formData['fields'] 是一个数组,其键是输入的名称,其值是来自 POST 数据的相应值,$formData['notValidFields'] 是一个数组,将包含未传递或包含无效数据的任何输入的名称。

此逻辑可以使用正则表达式轻松扩展以检查更严格的数据,例如电子邮件地址和 URL。

<?php

$requiredFields = array('field1', 'field2', 'field3', 'field4');
$formData = getFormData($requiredFields);

function getFormData($requiredFields){
       $formData = array();
       $formData['valid'] = true;
       $formData['fields'] = array();
       $formData['notValidFields'] = array();

       for($a = 0; $a < count($requiredFields); $a++){
               $field = $requiredFields[$a];
               if(isset($_POST[$field])){
                       $value = $_POST[$field];
                       if(empty($value)){
                               $formData['valid'] = false;
                               $formData['notValidFields'][] = $field;
                       }else{
                               $formData['fields'][$field] = $value;
                       }
               }else{
                       $formData['valid'] = false;
                       $formData['notValidFields'][] = $field;
               }
       }
       return $formData;
}