好的,我在网站上制作了一个表格,以便有人可以写下他们的信息并向电子邮件提交信息。然后它将它们重定向回网站的主页,我遇到的问题是它在消息发送时没有显示,它只是让我自动回到主页。我怎么能稍微延迟以便显示电子邮件已发送?也许我需要让它在消息框中弹出?自从我使用php以来已经有一段时间了,所以我有点生疏了。
<?php
ob_start();
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$from = 'From: Subject';
$to = 'myemailhere@example.com';
$subject = 'Subject';
$body = "From: $name\n E-Mail: $email\n Phone: $phone\n Message:\n $message";
if ($_POST['submit']) {
if (mail ($to, $subject, $body, $from)) {
echo '<p>Your message has been sent!</p>';
} else {
echo '<p>Something went wrong, go back and try again!</p>';
}
}
$url = 'http://example.com';
while(ob_get_status())
{
ob_end_clean();
}
header("Location: $url");
?>
此外,我用一般信息替换了一些内容,抱歉,你们没有收到我的电子邮件。
答案 0 :(得分:1)
您无法在服务器端轻松完成此操作。最好的办法是返回一个包含该消息的页面,然后通过javascript或META标记重新定向。
上的回答答案 1 :(得分:1)
您只能在输出任何html之前发送重定向标头。您是否考虑过使用定时元html重定向?
<meta http-equiv="refresh" content="5; url=http://homepage.com/">
或js:
window.location.href = "http://homepage.com";
注意:您也可以代替重定向,让用户知道表单已成功提交,并将其链接到之前的页面。
例如:感谢您的提交,请点击此处返回我们的网站。