2015-08-29 27 views
3

我有一个接触形式发送它与一个Ajax请求的PHP脚本的信息。现在我喜欢实施谷歌的“我不是机器人”recaptcha。克-reCAPTCHA的响应与AJAX

的问题是,我不知道如何运送G-reCAPTCHA的响应与阿贾克斯。 我怎么能证明它,结果发送到send_contactrequest_process.php?

<div class="kontakt-container"> 
 
    <form class="kontakt-form" id="kontakt-form" method="post"> 
 
    <input type="text" name="firstname" id="contact-form-firstname" placeholder="Vorname (erforderlich)" class="kontakt-form-input" minlength="2" required="required" data-msg="Du musst dieses Feld ausfüllen"> 
 
    <input type="text" name="lastname" id="contact-form-lastname" placeholder="Nachname (erforderlich)" class="kontakt-form-input" minlength="2" required="required" data-msg="Du musst dieses Feld ausfüllen"> 
 
    <input type="tel" name="telephone" id="contact-form-telephone" placeholder="Telefonnummer" class="kontakt-form-input"> 
 
    <input type="email" name="email" id="contact-form-email" placeholder="E-Mail (erforderlich)" class="kontakt-form-input" minlength="10" required="required" data-msg="Diese Email-Adresse ist ungültig"> 
 
    <textarea class="kontakt-form-message" id="contact-form-message" required="required" data-msg="Was möchtest du uns mitteilen?"></textarea> 
 
    <div class="g-recaptcha" data-sitekey="MY KEY"></div> 
 
    <div class="kontakt-form-submit" id="kontakt-form-submit">senden</div> 
 
    </form> 
 
    <p class="kontakt-form-success-message">Vielen Dank für Deine Nachricht.</p> 
 
</div>

if($("#kontakt-form").valid()){ 

     var firstname = $('#contact-form-firstname').val(); //Validierung der Form-Daten 
     var lastname = $('#contact-form-lastname').val(); 
     var email = $('#contact-form-email').val(); 
     var telephone = $('#contact-form-telephone').val(); 
     var message = $('#contact-form-message').val(); 

     $.ajax({ //AJAX request 
      type: "POST", 
      url: "../../../include/process/send_contactrequest_process.php", 
      data: {firstname: firstname, lastname: lastname, email:email, telephone:telephone, message:message}, 
      success: function() { 
       $('.kontakt-form-success-message').css("display","inline"); 
      }, 
     }); 
    } 

回答

0

验证码验证是形式提交不同。

  1. 参见如何嵌入验证码,并校验用户和网站this post
  2. 验证后是successfiul你可能会提交表单。请参阅this example并附上自动提示。 但是,如果你喜欢的Ajax表单submition你可能巢siteverify AJAX调用这样以后你的提交:

    var onReturnCallback = function(response) { 
    var url='proxy.php?url=' + 'https://www.google.com/recaptcha/api/siteverify'; 
    $.ajax({ 'url' : url, // site verification ajax request 
        dataType: 'json', 
        data: { response: response}, 
        success: function(data ) { 
         var res = data.success.toString(); 
         if (res) 
         { 
          var firstname = $('#contact-form-firstname').val(); 
          .... 
          $.ajax({ //AJAX request of form submission 
           type: "POST", 
           url: "../include/process/send_contactrequest_process.php", 
           data: {firstname: firstname...}, 
           success: function() { 
            $('.kontakt-form-success-message').css("display","inline"); 
           }, 
          }); 
    
         } 
        } // end success 
        }); // end $.ajax 
    
    }; // end onReturnCallback 
    
8

它只是调用这个函数grecaptcha.getResponse(); 这样的:

if($("#kontakt-form").valid()){ 

    var firstname = $('#contact-form-firstname').val(); //Validierung der Form-Daten 
    var lastname = $('#contact-form-lastname').val(); 
    var email = $('#contact-form-email').val(); 
    var telephone = $('#contact-form-telephone').val(); 
    var message = $('#contact-form-message').val(); 

    $.ajax({ //AJAX request 
     type: "POST", 
     url: "../../../include/process/send_contactrequest_process.php", 
     data: { 
      firstname: firstname, 
      lastname: lastname, 
      email:email, 
      telephone:telephone, 
      message:message, 
      recaptcha:grecaptcha.getResponse() 
     }, 
     success: function() { 
      $('.kontakt-form-success-message').css("display","inline"); 
     }, 
    }); 
}