Are there best practices for handling form submissions in PHP to prevent issues related to reloading and multiple submissions?
Issue: To prevent issues related to reloading and multiple submissions of a form in PHP, it is recommended to use techniques like redirect-after-post, token-based validation, and disabling form resubmission. Code snippet:
<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (!isset($_POST['token']) || $_POST['token'] !== $_SESSION['token']) {
// Invalid token, handle error or redirect
}
// Process form submission
// Unset token to prevent multiple submissions
unset($_SESSION['token']);
// Redirect to prevent form resubmission
header('Location: success.php');
exit;
}
// Generate unique token for each form submission
$token = md5(uniqid(rand(), true));
$_SESSION['token'] = $token;
?>
<form method="post" action="">
<!-- Form fields go here -->
<input type="hidden" name="token" value="<?php echo $token; ?>">
<input type="submit" value="Submit">
</form>