2017-07-20 5 views
-1
an

Ich versuche derzeit, das Formular vom Einreichen abzuhalten, wenn das recaptcha false zurückgibt, was es tut, aber es übergibt noch das Formular. Ich habe e.preventDefault auch verwendet und das funktioniert nicht, also muss etwas nicht ganz richtig sein.recaptcha 2 gibt false zurück, gibt aber immer noch fom

Vielen Dank im Voraus für Ihre Hilfe.

JQUERY:

submit: function() { 
$form = $('#registration-form'); 
$form.submit(function (e) { 
$output = _validate($form); 
    if($output == false) { 
    e.preventDefault(e); 
    } else { 
    $.ajax({ 
     type: "POST", 
     url: "http://" + window.location.hostname + "/wp-content/themes/Listex/includes/plugins/forms/recaptcha.php", 
     async: false, 
     data: "g-recaptcha-response=" + grecaptcha.getResponse(), 
     success: function(response) { 
     alert(response); 
     if (response == "false") 
      return false; 
     } 
    }); 
} 
}); 

},

recaptcha.php:

<?php 

$secret="secret code"; 
$response = $_POST["g-recaptcha-response"]; 

$verify=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={$secret}&response={$response}"); 
$captcha_success = json_decode($verify); 

echo json_encode($captcha_success->success); 
+0

Sie können nicht alles von einer asynchronen Callback-Funktion – geocodezip

+0

leid, das ist etwas, kehre ich auf Stackoverflow sah und versuchte, noch nicht ohne funktioniert – Max

Antwort

0

einsortiert Ende verknüpft mit aktuellen Validierungs in:

jQuery:

if(output == true) { 
    $.ajax({ 
     type: "POST", 
     async: false, 
     url: "http://" + window.location.hostname + "/wp-content/themes/Listex/includes/plugins/forms/recaptcha.php", 
     data: { 
     //THIS WILL TELL THE FORM IF THE USER IS CAPTCHA VERIFIED. 
     captcha: grecaptcha.getResponse() 
     }, 
     success: function(data) { 
     console.log("FORM SUCCESSFUL"); 
     output = data; 
     }, 
    }); 

    } 

    if (!output) alert('Please ensure all required fields have been entered'); 

    return output; 

recaptcha.php:

<?php 

if(isset($_POST['captcha']) && !empty($_POST['captcha'])){ 

$secret="6Lej1CkUAAAAAP0ACyvliPJo7Tp5I2eH52C-rsfG"; 
$response = $_POST["captcha"]; 

$verify = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={$secret}&response={$response}"); 
$captcha_success = json_decode($verify); 

echo json_encode($captcha_success->success); 

} 
?> 
Verwandte Themen