联系人表单处理程序指向空白php而不是html页面

联系人表单处理程序指向空白php而不是html页面,php,html,forms,contact,Php,Html,Forms,Contact,我有一个联系表格,应该是去一个感谢你的html页面。电子邮件正在发送到我的帐户,但在提交页面时,它会转到一个空白的php页面,而不是我的感谢html页面。有什么建议吗?代码很低 <?php $errors = ''; $myemail = 'yourname@website.com';//<-----Put Your email address here. if(empty($_POST['name']) || empty($_POST['email']) ||

我有一个联系表格,应该是去一个感谢你的html页面。电子邮件正在发送到我的帐户,但在提交页面时,它会转到一个空白的php页面,而不是我的感谢html页面。有什么建议吗?代码很低

<?php 
$errors = '';
$myemail = 'yourname@website.com';//<-----Put Your email address here.
if(empty($_POST['name'])  || 
   empty($_POST['email']) || 
   empty($_POST['message']))
{
    $errors .= "\n Error: all fields are required";
}

$name = $_POST['name']; 
$email_address = $_POST['email']; 
$message = $_POST['message']; 

if (!preg_match(
"/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", 
$email_address))
{
    $errors .= "\n Error: Invalid email address";
}

if( empty($errors))
{
    $to = $myemail; 
    $email_subject = "Contact form submission: $name";
    $email_body = "You have received a new message. ".
    " Here are the details:\n Name: $name \n Email: $email_address \n Message \n $message"; 

    $headers = "From: $myemail\n"; 
    $headers .= "Reply-To: $email_address";

    mail($to,$email_subject,$email_body,$headers);
    //redirect to the 'thank you' page
    header('Location: contact-form-thank-you.html');
} 
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
    <title>Contact form handler</title>
</head>

<body>
<!-- This page is displayed only if there is some error -->
<?php
echo nl2br($errors);
?>


</body>

联系人表单处理程序

我以前在重定向到另一个页面时遇到了问题,因为有东西是
echo()
'd。也许这可以解决你的问题

header('Location: page.html');
exit();

您不能同时拥有
回显
标题
。正如Alex在下面所说的,使用他的建议并消除echo。您可能会在
if
语句中使用错误消息。您还应该发布
表单本身,而不仅仅是
echo nl2br($errors)。很可能你不需要它,因为它已经在你的处理器中。我感谢你的回复。我想知道是否可以在php中包含html谢谢页面的代码?我没有构造这段代码,所以我仍在努力解决问题。我不确定这样做是否会干扰邮件发送到我的帐户。好的,所以我上传了该网站的直播,它现在重定向到html页面,但没有找到。我要玩弄它,让它工作起来。当我点击它时,它会显示在forms文件夹中,但页面在根文件夹中。虽然不是100%,但您的回复有所帮助。非常感谢你们两位的快速响应。@K.H.您可以从根文件夹中指定一个文件,使用
/
这样的名称:
位置:/page.html
,甚至相对于其父文件夹
。/
文件夹
位置:../page.html
@K.H.尝试使用双引号
用于您的位置文件。我以前也遇到过类似的问题。通过在反斜杠前添加句点来修复它。ie:位置:./page.html。我把php和联系人表单移到了同一个文件夹中。@K.H.那么你就不需要点了
/page.html
page.html
完全相同。移动文件解决了您的问题;)