1. <?php
  2. /**
  3. * Indexes and validates data from web forms.
  4. *
  5. * @param array $post_data Array of form data submitted via POST.
  6. * @return array|false Returns an array of validated data, or false on error.
  7. */
  8. function indexAndValidateForm(array $post_data): array|false
  9. {
  10. $validated_data = [];
  11. // Basic validation and indexing
  12. if (isset($post_data['name'])) {
  13. $validated_data['name'] = trim($post_data['name']); // Remove whitespace
  14. if (empty($validated_data['name'])) {
  15. error_log("Error: Name field is required."); // Log error
  16. return false;
  17. }
  18. }
  19. if (isset($post_data['email'])) {
  20. $email = trim($post_data['email']);
  21. if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  22. error_log("Error: Invalid email format."); // Log error
  23. return false;
  24. }
  25. $validated_data['email'] = $email;
  26. }
  27. if (isset($post_data['age'])) {
  28. $age = filter_var($post_data['age'], FILTER_VALIDATE_INT);
  29. if ($age === false || $age < 0 || $age > 120) {
  30. error_log("Error: Invalid age."); // Log error
  31. return false;
  32. }
  33. $validated_data['age'] = $age;
  34. }
  35. if (isset($post_data['message'])) {
  36. $validated_data['message'] = trim($post_data['message']);
  37. }
  38. return $validated_data;
  39. }
  40. // Example usage (for testing)
  41. if ($_SERVER["REQUEST_METHOD"] == "POST") {
  42. $form_data = $_POST;
  43. $validated_data = indexAndValidateForm($form_data);
  44. if ($validated_data !== false) {
  45. print_r($validated_data); // Output validated data
  46. } else {
  47. echo "Form submission failed. See server logs for details.";
  48. }
  49. }
  50. ?>

Add your comment