Задать вопрос
Этот вопрос закрыт для ответов, так как повторяет вопрос Как убрать повторную отправку POST запроса?
@Senseich

Как сделать чтобы данные формы после отправки, не отправлялись повторно при обновлении страницы?

Пытаюсь сделать простенькую форму для отправки и застрял на моменте обновления после отправки:
Всё действие делается на одной странице:
<html>
<head>
<title>Форма заявки с сайта</title>
</head>
<body>
<?php
//проверяем, существуют ли переменные в массиве POST
if(!isset($_POST['fio']) and !isset($_POST['email'])){
?> <form action="" method="post">
<input type="text" name="fio" placeholder="Укажите ФИО" required>
<input type="text" name="email" placeholder="Укажите e-mail" required>
<input type="submit" value="Отправить">
</form> <?php
} else {
//показываем форму
$fio = $_POST['fio'];
$email = $_POST['email'];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
if (mail("мыло@yandex.ru", "Заявка с сайта", "ФИО:".$fio.". E-mail: ".$email ,"From: Хороший сайт <info@хороший сайт.ru> \r\n")){ 
echo "Сообщение успешно отправлено"; 
} else { 
echo "При отправке сообщения возникли ошибки";
}
}
?>
</body>
</html>


Собственно, всё отправляется, выводиться сообщение на этой же странице, но если потом обновить, то заново письмо отправляется с этими данными.
Как мне сделать, чтобы после отправки страница просто обновлялась с сообщением и чистой формой. Можно даже без сообщения, чтобы просто отправилось и была чистая форма?
В PHP ещё не силен, поэтому прошу подсказать. На самом деле задача по возможности сделать отправку без перезагрузки страницы, но мне хотя бы этот момент надо понять сначала. Заранее благодарю!
  • Вопрос задан
  • 7121 просмотр
Подписаться 1 Средний
Ответы на вопрос 2
hcelite
@hcelite
Ajax php javascript mysql love my heart

<?php
//проверяем, существуют ли переменные в массиве POST
if(!isset($_POST['fio']) and !isset($_POST['email'])){
?>
<?php
} else {
//показываем форму
$fio = $_POST['fio'];
$email = $_POST['email'];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
if (mail("мыло@yandex.ru", "Заявка с сайта", "ФИО:".$fio.". E-mail: ".$email ,"From: Хороший сайт \r\n")){
echo "Сообщение успешно отправлено";
header('Location: index.php', true, 303);
} else {
echo "При отправке сообщения возникли ошибки";
}
}
?>
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы