How can PHP be used to validate and process form data, including images, before submission?

To validate and process form data, including images, before submission in PHP, you can use server-side validation to ensure that the data meets certain criteria (e.g., required fields are filled, correct format for email address, etc.) and process the image file to check its type, size, and dimensions before saving it to the server.

<?php
// Check if form is submitted
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Validate form data
    $name = $_POST["name"];
    $email = $_POST["email"];
    $image = $_FILES["image"];

    // Check if required fields are filled
    if (empty($name) || empty($email) || empty($image)) {
        echo "Please fill in all required fields.";
    } else {
        // Process image file
        $imageFileType = strtolower(pathinfo($image["name"], PATHINFO_EXTENSION));
        $allowedTypes = array("jpg", "jpeg", "png", "gif");
        $maxSize = 5 * 1024 * 1024; // 5MB

        if (!in_array($imageFileType, $allowedTypes)) {
            echo "Only JPG, JPEG, PNG, and GIF files are allowed.";
        } elseif ($image["size"] > $maxSize) {
            echo "File is too large. Maximum size is 5MB.";
        } else {
            // Save image to server
            $targetDir = "uploads/";
            $targetFile = $targetDir . basename($image["name"]);

            if (move_uploaded_file($image["tmp_name"], $targetFile)) {
                echo "Image uploaded successfully.";
            } else {
                echo "Error uploading image.";
            }
        }
    }
}
?>