【发布时间】:2012-08-21 23:13:36
【问题描述】:
我有一个基本的联系表单,它会将用户的消息两次发送给显示该表单的公司:一次包含所有正确信息,一次包含空白文本字段,即列出姓名、电子邮件、电话、消息但不包含任何信息。我已经研究了几个小时,但无法弄清楚。
在我页面的最顶部我有这个标题:
<?php
ob_start();
session_start();
if( isset($_POST['submit'])) {
if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) {
// Processing
header("Location:http://www.berrieswebdesign.com/business1 /thankyou.php?happymessage=thanks");
unset($_SESSION['security_code']);
} else {
// Error Message
header("Location:http://www.berrieswebdesign.com/business1 /thankyou.php?sadmessage=securitybreach");
unset($_POST['submit']);
}
} else {
}
ob_flush();
?>
Javascript:
$(function(){
$('#contact').validate({
submitHandler: function(form) {
$(form).ajaxSubmit({
url: 'process.php',
success: function() {
$('#contact').hide();
$('#contact-form').append("<p class='thanks'>Thanks! Your request has been sent.</p>")
}
});
}
});
});
和 process.php
function GetHeaders()
{
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'From: Company Name<info@companyname.com>' . "\r\n";
return $headers;
}
// Get Data
$name = strip_tags($_POST['name']);
$email = strip_tags($_POST['email']);
$phone = strip_tags($_POST['phone']);
$message = strip_tags($_POST['message']);
// Send Message
$headers = GetHeaders();
$intro = "\"Thank you for contacting company name. We are very interested in assessing your situation and will be in touch as soon possible.\" <br />
<br/>
Best Regards,<br/>
<br/>
Company<br/>
";
mail($email, "RE: Contact Form Submission", $intro, $headers);
mail("me@yahoo.com", "Inquiry", "Name: {$name}\n Email: {$email}\n Phone: {$phone}\n Message: {$message}\n");
?>
提前感谢您的帮助。
【问题讨论】:
-
您是否尝试仅使用一个 mail() 函数。每个人都发送一封电子邮件...
-
确定不是在第一次加载页面时调用它(在任何数据输入之前)?
-
这不是因为邮件被调用了两次,一次向用户发送回复消息(以确认表单提交)
-
Alfabrava- 你能详细说明一下吗?不知道你的意思
-
如果用户只收到一封电子邮件(下面的评论),那么您上面的代码没有错误。也许您在其他地方有另一个邮件电话或其他什么?要查看是否是这种情况,请尝试将
// mail("me@yahoo.com"...注释掉,看看您是否仍有空白电子邮件。
标签: php html forms header double-submit-problem