用户可以通过 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
?>
郎朗坤
达令说