Implementace Google reCAPTCHA pomocí ajax jQuery

Prvně musíte získat captchu na adrese  https://www.google.com/recaptcha/ (musíte být přihlášeni pod google účtem)

recaptchagoogle.php:

$captcha = filter_input(INPUT_POST, 'captchaResponse'); // get the captchaResponse parameter sent from our ajax
/* Check if captcha is filled */
if (!$captcha) {
http_response_code(401); // Return error code if there is no captcha
}
$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=VAS-SECRET-KEY&response=" . $captcha);
if ($response . success == false) {
echo 'SPAM';
http_response_code(401); // It's SPAM! RETURN SOME KIND OF ERROR
} else {
// Everything is ok and you can proceed by executing your login, signup, update etc scripts
}

jqueryajaxrecaptcha.js:

$(document).ready(function(){
$( "#formsubmit" ).submit(function( event ) { //tlačítko pro potvrzení formuláře
event.preventDefault();
/* Check if the captcha is complete */
if ($("#g-recaptcha-response").val()) {
$.ajax({
type: 'POST',
url: "recaptchagoogle.php", // The file we're making the request to
dataType: 'html',
async: true,
data: {
captchaResponse: $("#g-recaptcha-response").val() // The generated response from the widget sent as a POST parameter
},
success: function (data) {
// Uživatel není robot, můžete zde pokračovat v kódu, nebo volat pokračující funkci formuláře
pokracujkformulari();
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Spam");
}
});
} else {
//neověřeno, vyhoďtě chybu, např.
alert("Vypňte Captchu!");
}
});
});

html na místo kde se má Captcha objevit:

<script src='https://www.google.com/recaptcha/api.js'></script>
<div class="g-recaptcha" data-sitekey="Váš sitekey"></div>

Kategorie: Poznámky

Napsat komentář

Vaše emailová adresa nebude zveřejněna.

This site uses Akismet to reduce spam. Learn how your comment data is processed.