经过多次痛苦和心痛,我现在有了一个有效的PHP电子邮件联系表格。它唯一缺少的是感谢信或消息。谁能帮助我?
<form name="email" method="post">
<p>
<label for="name">Full Name</label>
<input type="text" name="name" id="name">
</p>
<p>
<label for="email">Email Address</label>
<input type="text" name="email" id="email">
</p>
<p>
<label for="phone">Phone Number</label>
<input type="text" name="phone" id="phone">
</p>
<p>
<label for="subject">Subject</label>
<input type="text" name="subject" id="subject">
</p>
<p>
<label for="message">Message<br>
</label>
<textarea name="message" id="message" cols="45" rows="5"></textarea>
</p>
<p><input type="submit" name="send" id="send" value="Submit"><input type="reset" name="send" id="send" value="Reset">
</p>
</form>
<?php
// Get the Variables
$name = $_POST['name'];
$visitor_email = $_POST['email'];
$phone = $_POST['phone'];
$subject = $_POST['subject'];
$message = $_POST['message'];
// Validate against spammers
function IsInjected($str)
{
$injections = array('(\n+)',
'(\r+)',
'(\t+)',
'(%0A+)',
'(%0D+)',
'(%08+)',
'(%09+)'
);
$inject = join('|', $injections);
$inject = "/$inject/i";
if(preg_match($inject,$str))
{
return true;
}
else
{
return false;
}
}
if(IsInjected($visitor_email))
{
echo "Bad email value!";
exit;
}
// Compose the Email
$email_from = 'a@b.com'; // Set a valid email address that the form can use
$email_subject = "New Form submission - $subject"; // Change the message subject here
$email_body = "You have received a new message from $name ($phone) .\n Here is the message:\n $message";
// Send The Email
$to = "a@b.com"; // Set a valid email address to send the form to
$headers = "From: $email_from \r\n";
$headers .= "Reply-To: $visitor_email \r\n";
mail($to,$email_subject,$email_body,$headers);
?>
答案 0 :(得分:2)
if(mail($to,$email_subject,$email_body,$headers)){
echo "Thanks for your mail...";
}
答案 1 :(得分:0)
非常简单,mail()函数返回true / false,所以使用:
echo mail($to, $email_subject, $email_body, $headers) ? 'Mail send' : 'Failed to send mail';
会将结果回显到屏幕上。但是,您可能希望在窗体上添加表单操作,因为将消息放在下面并不常见。你也可以用这个:
if($_SERVER['REQUEST_METHOD'] == "POST" && !IsInjected($visitor_email)) {
// insert form action here
} else {
if(IsInjected($visitor_email)) {
echo "False e-mail address supplied
}
// add form HTML code here (outside PHP tags ofcourse
}
在这种情况下,您首先检查是否正在发送请求(并且电子邮件不是假的),如果是,则执行发送操作。否则将错误电子邮件的错误消息显示并显示表单。
当然,这不是一个傻瓜证明的例子,你必须自己做一些工作。