reCAPTCHA V2 PHP oldalon

A Google féle reCAPTCHA az egyik legjobb ingyenes captcha szolgáltatás, ráadásul a használata sem bonyolult, ezt mutatom be egy nagyon leegyszerűsített példával. A példában annyit csinálunk, hogy megjelenítjük a reCAPTCHA-t egy form-ban, majd a kitöltés után megkérdezzük a Google-t, hogy megfelelően lett-e kitöltve.

1, https://www.google.com/recaptcha/admin oldalon tudsz az oldaladhoz létrehozni egy reCAPTCHA-t v2-t, itt kapsz egy sitekey-t és egy secret key-t, melyekre szükséged lesz később.

2, A teszteléshez hozd létre a captchatest.php fájlt, és illeszd be a következőt:

<html>
 <head>
  <title>reCAPTCHA teszt</title>
  <script src="https://www.google.com/recaptcha/api.js" async defer></script>
 </head>
 <body>
  <h3>Robot vagy?</h3>
  <form action="<?php echo $_SERVER['REQUEST_URI'];?>" method="POST">
   <div class="g-recaptcha" data-sitekey="[sitekey]"></div>
   <br/>
   <input type="submit" value="Tuti nem vagyok robot">
  </form>
 </body>
</html>

Ami innen a lényeg, hogy a <script src=”https://www.google.com/recaptcha/api.js” async defer></script> a <head> részben szerepeljen, illetve megfelelő sitekey legyen megadva a g-recaptcha div-ben.

3, Ellenőrző PHP

Az előbb létrehozott captchatest.php fájl elejére illeszd be a következő PHP kódot:

<?php
// A g-recaptcha-response POST valtozo a captcha kitoltes eredmenye kodolva
if (isset($_POST["g-recaptcha-response"])) {

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

//A reCAPTCHA admin oldalon secret key
 $secret="secret key";

 $url="https://www.google.com/recaptcha/api/siteverify";
//Megkerdezzuk a Google-t, hogy rendben van-e a user
 $check = curl_init();

 curl_setopt ($check, CURLOPT_URL, $url);

 curl_setopt($check, CURLOPT_POST, 1);

 curl_setopt($check, CURLOPT_POSTFIELDS,"secret=".$secret."&response=".$recaptcha."&remoteip=".$_SERVER["REMOTE_ADDR"]);

 curl_setopt ($check, CURLOPT_CONNECTTIMEOUT, 100);

 curl_setopt ($check, CURLOPT_RETURNTRANSFER, true);

 $respond = curl_exec($check);

 curl_close($check);

//A kapott valaszt dekodoljuk
 $result = json_decode($respond, TRUE);

//Ha a Google szerint robot, akkor ezt kiirjuk, egyébként azt, hogy nem robot.
 if ( $result['success'] != "true" ) {

  echo '<h2>A Google szerint robot vagy</h2>';

 } else {
  //Ide johet az a kod, ami akkor fut le, ha atment a latogato a teszten.

  echo '<h2>Tényleg nem vagy robot</h2>';

 }

}

?>

Itt a secret változóhoz illeszd be a secret key-t, amit kaptál, utána ha megnyitod böngészőből acaptchatest.php fájlt, akkor ezt kellene látnod:

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.

*

*