<?php
/**
* Indexes and validates data from web forms.
*
* @param array $post_data Array of form data submitted via POST.
* @return array|false Returns an array of validated data, or false on error.
*/
function indexAndValidateForm(array $post_data): array|false
{
$validated_data = [];
// Basic validation and indexing
if (isset($post_data['name'])) {
$validated_data['name'] = trim($post_data['name']); // Remove whitespace
if (empty($validated_data['name'])) {
error_log("Error: Name field is required."); // Log error
return false;
}
}
if (isset($post_data['email'])) {
$email = trim($post_data['email']);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
error_log("Error: Invalid email format."); // Log error
return false;
}
$validated_data['email'] = $email;
}
if (isset($post_data['age'])) {
$age = filter_var($post_data['age'], FILTER_VALIDATE_INT);
if ($age === false || $age < 0 || $age > 120) {
error_log("Error: Invalid age."); // Log error
return false;
}
$validated_data['age'] = $age;
}
if (isset($post_data['message'])) {
$validated_data['message'] = trim($post_data['message']);
}
return $validated_data;
}
// Example usage (for testing)
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$form_data = $_POST;
$validated_data = indexAndValidateForm($form_data);
if ($validated_data !== false) {
print_r($validated_data); // Output validated data
} else {
echo "Form submission failed. See server logs for details.";
}
}
?>
Add your comment