我在用于发送表单数据的基本联系人 PHP 脚本方面遇到问题。有问题的页面。
我的 PHP 非常有限,但我的语法无法发现任何明显的问题。
该脚本进行一些基本的错误检查并将结果存储在变量 $error 中
if($email && !ValidateEmail($email))
{
$error .= 'Invalid E-mail !!!';
}
然后是有问题的PHP:
if(!$error)
{
$mail = mail(WEBMASTER_EMAIL, $subject, $message,
"From: ".$name." <".$email."> \r\n"
."Subject: BOOKING FORM SUBMISSION \r\n"
."X-Mailer: PHP/".phpversion());
if($mail)
{
echo 'OK';
}
else {
echo 'Mail called, no mail';
}
}
else
{
echo '<div class="notification_error">'.$error.'</div>';
}
}
如果我输入 bob@hj 作为电子邮件,PHP 脚本会识别此错误,并且我会从脚本中得到响应:“无效电子邮件”,因此我可以确认表单数据正在发送到查看检查器页面的脚本显示数据被正确解析。
当没有错误时,响应是“已调用邮件,未发送邮件”,所以我认为我正在调用的 mail() 函数有问题。
我尝试将标题简化为具有相同结果的直接字段。
有任何想法吗?提前感谢堆栈上的伟大社区。
认为包括我用来调用脚本的 jquery 可能值得,但鉴于 PHP 的响应“已调用邮件,没有邮件”,我认为这不是 jQuery 引起的问题。
jQuery("#booking-form").submit(function(){
_CONTACT = jQuery(this);
var str = _CONTACT.serialize();
jQuery.ajax({
type: "POST",
url: "basic_booking_form/booking.php",
data: str,
success: function(msg){
jQuery(document).ajaxComplete(function(event, request, settings){
if(msg == 'OK') {
result = '<div class="notification_ok">Your message has been sent Succesfully. Thank you.</div>';
jQuery("#fields").hide();
_CONTACT.hide();
_CONTACT.html(result).slideDown("slow");
_CONTACT.html(result);
}
else {
result = msg;
_CONTACT.find('#note').html(result).slideDown("slow");
}
});
}
});
return false;
});