Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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
Javascript Ajax/php联系人表单不时发送空白电子邮件_Javascript_Php_Jquery_Ajax_Contact Form - Fatal编程技术网

Javascript Ajax/php联系人表单不时发送空白电子邮件

Javascript Ajax/php联系人表单不时发送空白电子邮件,javascript,php,jquery,ajax,contact-form,Javascript,Php,Jquery,Ajax,Contact Form,我有一张发送空白电子邮件的联系表。但我做了一些测试,结果却没有发生在我身上。我认为,实现这一点的唯一方法是直接访问.php文件。如果不是,我不知道会有什么问题。该表单不允许您发送空白电子邮件。如果这种情况继续发生,我也会在php文件中添加一个验证,但在我发现问题所在之前,我不想忽略这些消息 这是HTML <form name="contactForm" id="contactForm" method="post" action="/contactEngine.php" onsubmit="

我有一张发送空白电子邮件的联系表。但我做了一些测试,结果却没有发生在我身上。我认为,实现这一点的唯一方法是直接访问.php文件。如果不是,我不知道会有什么问题。该表单不允许您发送空白电子邮件。如果这种情况继续发生,我也会在php文件中添加一个验证,但在我发现问题所在之前,我不想忽略这些消息

这是HTML

<form name="contactForm" id="contactForm" method="post" action="/contactEngine.php" onsubmit="return validateForm()">
        <input title="Input name" type="text" name="Name" id="Name" placeholder="Nombre:" required="">
        <input title="Input email" placeholder="Email:" type="email" name="Email" id="Email" required="">
        <input type="text" placeholder="Subject:" name="Subjet" id="Subjet">
        <textarea title="Input message" placeholder="Mensaje:" name="Message" rows="20" cols="20" id="Message" required=""></textarea>
        <input title="Input result" placeholder="25 + 25 = ?" type="text" name="Captcha" id="Captcha" required="">
        <p id="wrongCaptcha"> Try again </p> 
        <input type="submit" name="submit" value="send" class="submit-button"> 
</form>

请重试
这是JS

function validateForm(e) {
e.preventDefault();
var x = document.forms["contactForm"]["Captcha"].value; 
if (x != 50) {//if captcha is wrong
    $("#Captcha").addClass("wrongCaptchaEntered");
    $("#Captcha").css("animation-name" , "none");
    setTimeout (function(){
        $("#Captcha").css("animation-name" , "changeBorder");
    },100);
    if ($("#wrongCaptcha").css("display") == "none"){
        $("#wrongCaptcha").slideDown();
    }   
}
else {  //if captcha is correct 
    var formAction = $("#contactForm").attr("action");  
    if (formAction == "/contactEngine.php"){
        var formData = $("#contactForm").serialize();
        $.post( formAction, formData, function(data){
            console.log (data);
            $(".formulario").changeTo({content: "<h2 class='section-title BackgroundGradientBlack'>"+ data +"</h2>"});
        });
    }
}
return false;
}
函数验证表单(e){
e、 预防默认值();
var x=document.forms[“contactForm”][“Captcha”]值;
如果(x!=50){//如果验证码错误
$(“#验证码”).addClass(“错误验证码输入”);
$(“#Captcha”).css(“动画名称”,“无”);
setTimeout(函数(){
$(“#Captcha”).css(“动画名称”、“更改边框”);
},100);
if($(“#错误验证码”).css(“显示”)=“无”){
$(“#错误验证码”).slideDown();
}   
}
否则{//如果验证码正确
var formAction=$(“#contactForm”).attr(“action”);
if(formAction==“/contactEngine.php”){
var formData=$(“#contactForm”).serialize();
$.post(形式、形式数据、功能(数据){
console.log(数据);
$(“.formulario”)。更改为({content:”“+data+”“});
});
}
}
返回false;
}
还有PHP

<?php
$EmailFrom = "EmailFrom@test.com";
$EmailTo = "EmailTo@test.com";
$Name = Trim(stripslashes($_POST['Name'])); 
$Email = Trim(stripslashes($_POST['Email'])); 
$Subject = Trim(stripslashes($_POST['Subjet']));    
$Message = Trim(stripslashes($_POST['Message'])); 


$email_content = "Frontpage";
$email_content .= "\nNombre: $Name";
$email_content .= "\nEmail: $Email";
$email_content .= "\nMotivo: $Subject";
$email_content .= "\nMensaje: $Message";


$email_headers = "From: <$EmailFrom>";


if (mail($EmailTo, $Subject, $email_content, $email_headers)) {
    http_response_code(200);
    echo "Mensaje enviado";
} else {
    http_response_code(500);
    echo "Error";
}
?>


谢谢

可能是某个机器人正在测试它可以在JS中看到的PHP端点,并向其发送数据,试图造成严重破坏。我敢打赌,如果您在每次发送电子邮件时都记录了$\u POST变量,那么您会在一些$\u POST变量中看到大量垃圾信息。电子邮件是空白的,只是因为机器人不够聪明,不知道在其帖子中使用哪些密钥