// URL pour générer des clés: https://www.google.com/recaptcha/admin
// Appeler l'API dans le <head> de la page :
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
// Insérer cet input caché dans le <form> :
<input type="hidden" name="recaptcha_token" />
// Insérer le bouton en dehors du <form> :
<button class="g-recaptcha" data-sitekey="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" data-callback="recaptchaCallback" data-badge="inline" style="margin-top:20px;">
Envoyer
</button>
// Intégrer cette fonction JavaScript dans la page :
function recaptchaCallback(recaptcha_token) {
$('[name="recaptcha_token"]').val(recaptcha_token);
// ici, valider le <form> ou envoyer les données de ce dernier
}
// En cas d'erreur de votre côté, possibilité de recharger le reCAPTCHA avec :
grecaptcha.reset();
// Vérifier la validité du reCAPTCHA à la réception des données du formulaire :
$recaptcha_token = htmlspecialchars($_POST['recaptcha_token'],ENT_QUOTES);
$recaptcha_ok = -1;
if (!empty($recaptcha_token)) {
$recaptcha_ok = 0;
$url = 'https://www.google.com/recaptcha/api/siteverify';
$myvars = 'secret=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY&response='.$recaptcha_token;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $myvars);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
$json = json_decode($response);
if ($json->success)
$recaptcha_ok = 1;
}
// Si le reCAPTCHA est validé, alors $recaptcha_ok = 1;
Comments