PHP不断收到空白消息
我有一个非常奇怪的问题,我的网站上有一个用户填写的表格,一切正常,经过验证和工作,非常可靠,但是我每天都会收到2封这样的电子邮件: 已收到来自的新询问。请查看以下详细信息并跟进:PHP不断收到空白消息,php,jquery,forms,cloudflare,Php,Jquery,Forms,Cloudflare,我有一个非常奇怪的问题,我的网站上有一个用户填写的表格,一切正常,经过验证和工作,非常可靠,但是我每天都会收到2封这样的电子邮件: 已收到来自的新询问。请查看以下详细信息并跟进: Email : Phone Number : Event Type: Number Guests: State: Suburb: IP ADDRESS:173.245.50.130 Message: 为什么会这样?为什么我会这样 我追踪了Ip,它来自美国,这很奇怪,因为我们的网站是针对澳大利亚的,我们的大部分
Email :
Phone Number :
Event Type:
Number Guests:
State:
Suburb:
IP ADDRESS:173.245.50.130
Message:
为什么会这样?为什么我会这样
我追踪了Ip,它来自美国,这很奇怪,因为我们的网站是针对澳大利亚的,我们的大部分流量来自谷歌广告词。然而,IP的ISP是我们的主机提供商cloudflare
知道我为什么/如何得到这些空白吗
这是我的剧本…很有鼻音,但它传达给我们的信息
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$mobile = $_POST['mobile'];
$eventType = $_POST['eventType'];
$nrGuests = $_POST['nrGuests'];
$state = $_POST['state'];
$suburb = $_POST['suburb'];
$msg = $_POST['msg'];
$ip = $_SERVER['REMOTE_ADDR'];
$to_email = "xxxx@axxxxcom.au, xxxxx@xxxxxx.co.nz";
$suburb = filter_var($_POST["suburb"], FILTER_SANITIZE_STRING);
$subject = "You Have a New Booking!";
//Add booking INFO here;
$message = "A new Enquiry has been received from http://www.fingerfoods.com.au. Please find details below and follow up:";
//email body
$message_body = $message."\r\n\r\n".$name."\r\nEmail : ".$email."\r\nPhone Number : ". $mobile."\r\nEvent Type: ".$eventType."\r\nNumber Guests:".$nrGuests."\r\nState: ".$state."\r\nSuburb:".$suburb."\r\nIP ADDRESS:".$ip."\r\nMessage:".$msg;
//proceed with PHP email.
$headers = 'From: '.$name.'' . "\r\n" .
'Reply-To: '.$email.'' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$send_mail = mail($to_email, $subject, $message_body, $headers);
if($send_mail)
{
echo '<h1 class="page-header">Enquiry Successfully submitted</h1>';
}
else{
echo'<h1 class="page-header" style="color:RED">OOPS...SOMETHING WENT WRONG, PLEASE TRY AGAIN!</h1>';
}
?>
这听起来可能有点愚蠢,但你知道我为什么会收到这些空白电子邮件吗??如上图所示首先,$\u SERVER['REMOTE\u ADDR']给出了将请求发送到web服务器的IP地址。这通常是访问者的地址,但在您的情况下,听起来好像有某种代理位于拦截请求的web服务器之前,因此对于web服务器来说,请求似乎是从那里发出的
其次,可能您没有获取参数值,因为您发送GET请求而不是POST,您可以使用GET、POST和COOKIE变量的$\u REQUESTget内容,而不是不区分GET和POST请求
最重要的是,您必须检查输入值,不要发送表单值,除非它们不是空的 因为您没有检查输入数据是否为空?因为search robot访问您的页面并执行页面?@u_mulder即使禁用javascript,您也不能在不填写数据的情况下提交表单……而且这是来自美国的同一IP,我们只针对澳大利亚,但该IP的isp来自我们的托管提供商cloudflare…?为什么我不能提交?如果这是您的完整脚本-那么我可以访问此脚本并执行它。谁阻止了我?我只是访问脚本或执行脚本的页面,什么都没发生……如果这是你的意思?对不起,我非常想在这里得到帮助你没有收到信吗?很抱歉,这有点不对劲。你可以看到我使用POST请求。不,我看到你试图从POST请求中获取内容。你在url中看不到参数,如果表单send get你在url中看到参数,你将无法通过POST请求获取内容。。所以试着像这样使用$请求:$name=$请求['name']$电子邮件=$_请求['email'];我强烈反对你的建议!所有表单都设置为method=postOk,检查输入是否为空非常重要,用户可以提交表单。if==trim$_POST['userName']{$userName='Anonymous';}