POST Validation Loop
Assumptions
You have an HTML form with a variety of inputs. The
action attribute of the
form points to a PHP file that contains the code below.
Notes about code
This code starts by creating an array that holds the
name of various inputs being submitted via a POST.
getFormData()
is then called, where the required fields are passed in. Inside the
function an array is created to hold various pieces of data related to
the form. $formData['valid'] is a boolean referencing if all data was
provided and valid, $formData['fields'] is an array keyed by the name of
the input with their respective value from the POST data,
$formData['notValidFields'] is an array that will contain the names of
any inputs that were not passed or that had non-valid data.
This logic can be easily extended with regular expressions to check for stricter data, such as email addresses and urls.
<?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;
}