PHP联系表单处理程序不工作?
我需要一个非常简单的,但有效的PHP形式处理,将这种形式的合作:PHP联系表单处理程序不工作?
<form id="contact" method="post" action="contact_handle.php">
<label for="name">Name:</label>
<input type="text" class="text_style" placeholder="John Doe" name="name" /><br />
<label for="email">Email:</label>
<input type="email" class="text_style" placeholder="[email protected]" name="email" /><br />
<label for="message">Subject:</label>
<textarea class="areawidth" rows="4" name="message" /></textarea><br />
<button id="contactbutton" type="submit">Submit</button>
</form>
这是我现在有,但它不发送电子邮件,它不重定向像我预期。我似乎无法弄清楚发生了什么事。
<?php
$invalid = '';
$my_email = '[email protected]';
// Validate input:
if(empty($_POST['name']) ||
empty($_POST['email']) ||
empty($_POST['message']))
{
$invalid.= "\n All fields are required";
}
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
// Validate email:
if (!preg_match(
"/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i",
$email))
{
$invalid .= "\n Invalid email address";
}
// Send email if no errors detected:
if(empty($invalid))
{
$to = $my_email;
$subject = "Contact form submission: $name";
$body = "You have received a new message. ".
" Here are the details:\n Name: $name \n ".
"Email: $email\n Message:\n $message";
$headers = "From: $email\n";
$headers .= "Reply-To: $email";
mail($to,$subject,$body,$headers);
//redirect to the thank you page:
header('Location: contact_thanks.php');
}
?>
当它被提交时,它会带我到contact_handle.php显示空白,并无法重定向。
我认为重定向必须是第一个输出到浏览器,所以如果什么都正在输出它不会工作
为什么不”。如果您只包含感谢页面而不是重定向到该页面,即。
include 'contact_thanks.php';
这使得表单工作!谢谢!首先我应该做到这一点。我的网站已经使用PHP进行模板化,所以简单的包含更容易。对不起,我不能投票给你,我还没有足够的积分。 – 2012-04-17 22:10:55
没问题,很高兴能得到帮助。 – jx12345 2012-04-18 06:20:20
如果您提供的所有代码,问题是,你的形式抛出一个错误(通过添加文本$invalid
,但没有代码来处理$invalid
不是空的。为了解决这个问题,加这在最后收盘}
后:
echo $invalid;
谢谢,窗体现在显示错误,如果有的话。简单的错误应该很容易注意到。 – 2012-04-17 22:07:45
您是在本地主机上还是在线服务器上测试此功能?你是否收到任何错误讯息? – 2012-04-17 21:53:25
您的表单处理程序的第10行似乎存在拼写错误 - 您将错误消息存储在'$ error'变量中,而它应该是'$ invalid',这是其余代码使用的。 – Indrek 2012-04-17 21:56:24
糟糕,修正了错字,尽管如此,结果仍然相同。我在本地主机和活动服务器上都进行了测试,两者都不起作用。没有错误信息显示。只是一个空白的屏幕和电子邮件。 – 2012-04-17 22:00:23