Как избежать повторной отправки формы в следующем случае — в моем HTML-файле есть форма, которая отправляет данные себе для проверки. Включено в ту же страницу, до <!DOCTYPE html>
тег является обязательным оператором PHP. Это получает содержимое файла с именем process.php
и проверяет данные пользователей. Если данные неверны, то они успешно показывают сообщение об ошибке. Если данные верны, он отправляет электронное письмо. — Это все работает нормально, однако, если пользователь возвращается «нажимает стрелку назад» и обновляет страницу, то он запрашивает повторную отправку данных. Как мне избежать этой проблемы.
<?php require("inc/process.php"); end(); ?>
<!DOCTYPE html>
<html>
<head>
<title>Page one</title>
</head>
<body>
<div class="form-box">
<!--Display error message PHP-->
<?php
if (isset($error_msg)) {
$show_error = "<p class='error-message'>" . $error_msg . "</p>";
echo strip_tags($show_error, '<p>');
}
?>
<form method="post" action="index.html">
<input name="full-name" type="text">
<input name="email" type="email">
</form>
</div></body>
</html>
ну лучше всего использовать jquery ajax, например:
$("#FormID").submit(function(e) {
var url = "path/to/your/script.php"; // the script where you handle the form input.
$.ajax({
type: "POST",
url: url,
data: $("#FormID").serialize(), // serializes the form's elements.
})
// when the request is succesfull
.done(function( data ) {
alert(data); // show response from the php script.
})
// when an error occurs
.fail(function() {
alert( "error" );
});
e.preventDefault(); // avoid to execute the actual submit of the form. (no redirection)
});
Других решений пока нет …