请帮助这个php联系表格。但是,它有效,我想将访问者重定向到另一个.html页面,而不是显示一条谢谢你的消息,但我不想丢失联系表单信息。谢谢 !
我使用非常简单的联系表格:
<form method="POST" action="sendmail.php" class="form">
<p class="yourName"> Submit Name:</p>
<input name="text" class="name" placeholder="Name" name="name">
<p class="yourEmail">Submit Email:</p>
<input type="text" class="email" placeholder="Email" name="email">
<p class="yourInquiry">Submit Inquiry:</p>
<input type="submit" value="Submit" class="Button">
</form>
<?php
$to = "xyz@hotmail.com";
$subject = "Inquiry from ". $_POST['name'];
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$html`enter code here` = "";
foreach ($_POST as $name => $value) {
$html .= "<strong>$name</strong><br>";
$html .= "<p>$value</p><br>";
}
if (mail($to, $subject, $html,$headers)) {
/* Success Message */
} else {
/* Error message */
}
header('Location:about.html');
} else {
echo "You didnt enter anything";
?>
答案 0 :(得分:2)
header
和相关功能(特别是setcookie
)必须出现在页面上的任何内容之前。在这种情况下,您的表单将在其之前发送。
您可以重新安排代码,以便在表单之前显示表单处理,或者使用ob_start
启动代码以绕过限制(但如果您确实打算将回调传递给功能)
答案 1 :(得分:0)
在使用函数header()
将所有逻辑放在脚本顶部,并在底部放置html标记,这样您就可以执行header('Location:about.html');
答案 2 :(得分:0)
首先,如果您想使用标题位置重定向,则无法显示任何消息,如成功消息或错误消息。
第二次使用标题(“位置:about.html”);
尝试更改代码的顺序,如下所示
<?php
if(isset($_POST["yourName"])){
$to = "xyz@hotmail.com";
$subject = "Inquiry from ". $_POST['name'];
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$html`enter code here` = "";
foreach ($_POST as $name => $value) {
$html .= "<strong>$name</strong><br>";
$html .= "<p>$value</p><br>";
}
if (mail($to, $subject, $html,$headers)) {
/* Success Message */
} else {
/* Error message */
}
header("Location:about.html");
} else {
echo "You didnt enter anything";
}
?>
<form method="POST" action="sendmail.php" class="form">
<p class="yourName"> Submit Name:</p>
<input name="text" class="name" placeholder="Name" name="name">
<p class="yourEmail">Submit Email:</p>
<input type="text" class="email" placeholder="Email" name="email">
<p class="yourInquiry">Submit Inquiry:</p>
<input type="submit" value="Submit" class="Button">
</form>
答案 3 :(得分:-1)
您不能在header语句之前输出任何内容,并且必须将header()语句更改为:
header('Location: http://www.example.com/about.html');