Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP不断收到空白消息_Php_Jquery_Forms_Cloudflare - Fatal编程技术网

PHP不断收到空白消息

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,它来自美国,这很奇怪,因为我们的网站是针对澳大利亚的,我们的大部分

我有一个非常奇怪的问题,我的网站上有一个用户填写的表格,一切正常,经过验证和工作,非常可靠,但是我每天都会收到2封这样的电子邮件:

已收到来自的新询问。请查看以下详细信息并跟进:

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';}