Advertisement
rAthus

Invisible reCAPTCHA

Feb 1st, 2018
446
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.62 KB | None | 0 0
  1. // URL pour générer des clés: https://www.google.com/recaptcha/admin
  2.  
  3. // Appeler l'API dans le <head> de la page :
  4. <script src="https://www.google.com/recaptcha/api.js" async defer></script>
  5.  
  6. // Insérer cet input caché dans le <form> :
  7. <input type="hidden" name="recaptcha_token" />
  8.  
  9. // Insérer le bouton en dehors du <form> :
  10. <button class="g-recaptcha" data-sitekey="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" data-callback="recaptchaCallback" data-badge="inline" style="margin-top:20px;">
  11.     Envoyer
  12. </button>
  13.  
  14. // Intégrer cette fonction JavaScript dans la page :
  15. function recaptchaCallback(recaptcha_token) {
  16.     $('[name="recaptcha_token"]').val(recaptcha_token);
  17.     // ici, valider le <form> ou envoyer les données de ce dernier
  18. }
  19.  
  20. // En cas d'erreur de votre côté, possibilité de recharger le reCAPTCHA avec :
  21. grecaptcha.reset();
  22.  
  23. // Vérifier la validité du reCAPTCHA à la réception des données du formulaire :
  24. $recaptcha_token = htmlspecialchars($_POST['recaptcha_token'],ENT_QUOTES);
  25. $recaptcha_ok = -1;
  26. if (!empty($recaptcha_token)) {
  27.     $recaptcha_ok = 0;
  28.     $url = 'https://www.google.com/recaptcha/api/siteverify';
  29.     $myvars = 'secret=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY&response='.$recaptcha_token;
  30.     $ch = curl_init($url);
  31.     curl_setopt($ch, CURLOPT_POST, 1);
  32.     curl_setopt($ch, CURLOPT_POSTFIELDS, $myvars);
  33.     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  34.     curl_setopt($ch, CURLOPT_HEADER, 0);
  35.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  36.     $response = curl_exec($ch);
  37.     $json = json_decode($response);
  38.     if ($json->success)
  39.         $recaptcha_ok = 1;
  40. }
  41.  
  42. // Si le reCAPTCHA est validé, alors $recaptcha_ok = 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement