How can PHP be used to redirect users back to a form with their input data intact after displaying error messages?

When displaying error messages on a form, you can use PHP to redirect users back to the form with their input data intact by storing the input values in session variables before redirecting. This way, you can repopulate the form fields with the user's previous input when the form is displayed again.

<?php
session_start();

// Check if form is submitted
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Validate form data
    if (/* validation fails */) {
        // Store form data in session variables
        $_SESSION['input_data'] = $_POST;
        
        // Redirect back to the form page
        header("Location: form.php");
        exit();
    }
}

// Display the form with input data if available
if (isset($_SESSION['input_data'])) {
    $input_data = $_SESSION['input_data'];
    unset($_SESSION['input_data']);
} else {
    $input_data = array();
}
?>

<!-- HTML form -->
<form method="post" action="process_form.php">
    <input type="text" name="name" value="<?php echo isset($input_data['name']) ? $input_data['name'] : ''; ?>">
    <!-- Other form fields -->
    <button type="submit">Submit</button>
</form>