How can PHP be used to temporarily store form data to prevent loss upon submission errors?

When a form submission results in an error, the data entered by the user is typically lost. To prevent this, we can use PHP to temporarily store the form data in session variables. This way, if there is an error, the form can be re-populated with the previously entered data.

<?php
session_start();

// Check if form is submitted
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Store form data in session variables
    $_SESSION['name'] = $_POST['name'];
    $_SESSION['email'] = $_POST['email'];
    $_SESSION['message'] = $_POST['message'];
}

// Populate form fields with session data
$name = isset($_SESSION['name']) ? $_SESSION['name'] : '';
$email = isset($_SESSION['email']) ? $_SESSION['email'] : '';
$message = isset($_SESSION['message']) ? $_SESSION['message'] : '';
?>

<form method="post" action="">
    <input type="text" name="name" value="<?php echo $name; ?>" placeholder="Name">
    <input type="email" name="email" value="<?php echo $email; ?>" placeholder="Email">
    <textarea name="message" placeholder="Message"><?php echo $message; ?></textarea>
    <button type="submit">Submit</button>
</form>