При отправке формы перенаправляет на PHP файл
В форме, при нажатии на кнопку "Отправить заявку", меня перенаправляет со страницы сайта на PHP файл, в котором ничего, кроме кода для отправки данных из формы на БД нет, соответственно, после нажатии на кнопку появляется белый экран. Как этого можно избежать?
Код формы:
<form class="popup__form" method="get" action="form.php">
<input
class="popup__form-text popup__form-input popup__form-fields"
type="text"
name="name"
placeholder="Ваше имя"
/>
<input
class="popup__form-tel popup__form-input popup__form-fields"
type="tel"
name="tel"
placeholder="Номер телефона"
/>
<input
class="popup__form-email popup__form-input popup__form-fields"
type="email"
name="email"
placeholder="Электронная почта"
/>
<input
class="popup__form-submit popup__form-input popup__form-button"
type="submit"
name="popup-submit"
value="Отправить заявку"
/>
</form>
Код PHP:
<?php
if (isset($_GET['popup-submit'])) {
$nameform = $_GET['name'];
$telform = $_GET['tel'];
$emailform = $_GET['email'];
$mysqli = new mysqli("localhost", "root", "", "dudich");
if ($mysqli->connect__errno) {
echo "Извините, возникла проблема на сайте";
exit;
}
$name = '"' . $mysqli->real_escape_string($nameform) . '"';
$tel = '"' . $mysqli->real_escape_string($telform) . '"';
$email = '"' . $mysqli->real_escape_string($emailform) . '"';
$query = "INSERT INTO users (name, tel, email) VALUES ($name, $tel, $email)";
$result = $mysqli->query($query);
$mysqli->close();
}
?>
Ответы (1 шт):
Самый простой способ - это после отработки скрипта делать редирект на страницу с информацией. Например так
header("Location: thanks.html");
Таким образом можно избежать повторной обработки формы при обновлении страницы.
Более сложным вариантом является совмещение страницы с "благодарностью" и скрипта по обработке формы. В этом случае нужно уже предусматривать проверку на повторную обработку. Так как если эту првоерку не сделать, то данные будут из формы будут обрабатываться каждый раз, когда пользователь обновит страницу.
Еще более сложным, но более правильным вариантом является совмщение в одном файле и самой формы, и скрипта обработчика и страницы благодарности. Такое подход, например, позволит проверять данные из формы и в случае чего показывать форму еще раз, но уже заполненую. Чтобы пользователю не приходилось вводить форму целиком.