Пользователи могут связаться с нами через всплывающее окно Bootstrap. В настоящее время он передает все и отображает сообщение об успехе (все еще в модальном всплывающем окне). Я хотел бы вместо повторения сообщения перенаправить на совершенно новую страницу (а не на другое всплывающее окно).
Я пытался использовать "header ('Location: contact-thank-you.html'); exit ();", что кажется очевидным решением. Тем не менее, это просто рассматривается как еще одно эхо - он печатает всю страницу (HTML и все) в модальном всплывающем окне.
В консоли нет сообщений об ошибках.
Там нет пробелов выше начала php-файла (что, как я понимаю, может вызвать проблемы).
Я могу решить эту проблему путем перенаправления через javascript, но я хочу понять, почему это не работает. Я не повторяю что-либо еще ранее на странице (хотя у меня есть ошибка, если кто-то не отправляет необходимую часть информации), поэтому не должен работать header ()? Разве это не работает с Bootstrap?
Сайт построен на Jekyll, если это имеет какое-либо отношение к проблеме.
Вот примерный план моего php, с большим количеством лишних вещей, удаленных для вашего удовольствия от просмотра :):
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = strip_tags(trim($_POST["name"]));
$email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
// Require Email
if (empty($email)) {
http_response_code(400);
exit;
}
// Set the email subject.
$subject = "$name - New Contact";
// Build the email content.
$email_content = "";
$email_content .= "Name: $name\n";
$email_content .= "Email: $email\n";
$email_headers = "From: $name <$email>";
$recipient = "myname@mycompany.com";
send_mail($recipient, $subject, $email_content, $email_headers);
// confirm message was sent
header('Location: contact-thank-you.html');
exit();
}
// removed mailer function and other sections unessential to this question
?>