Cover photoCover photo
meniny Dnes je: 27.6.2019, meniny má: Ladislav, Ladislava

PHP implementácia Google reCAPTCHA

Naspäť

Úvodom trochu teórie. CAPTCHA (skratka od anglického Completely Automated Public Turing test to tell Computers and Humans Apart) je forma testu, alebo nástroja, ktorý má rozlíšiť človeka od robota. Google reCaptcha je pomerne známy a na weboch sa často vyskytujúci prvok, ktorý by mal aktívne zabraňovať spamovaniu formulárov cez rôzne nástroje. Ukážka dizajnu reCAPTCHY je nižšie.

PHP implementácia Google reCAPTCHA

Postup integrácie do webu je pomerne jednoduchý. Zhrniem ho v nasledovných krokoch:

1. Je potrebné navštíviť portál Google reCAPTCHA a prejsť do admin konzoly:
https://www.google.com/recaptcha/intro/v3.html

2. Vytvoríme novú CAPTCHU. Je potrebné správne zadanie domény, na ktorej bude tento systém bežať. Pre testovanie na localhoste je dobré použiť tvar: 127.0.0.1, prípadne localhost.

PHP implementácia Google reCAPTCHA

3. Po zadaní vstupných nastavení služba reCAPTCHA poskytne 2 kľúče. Verejný a privátny. Verejný kľúč bude tvoriť identifikátor pre zobrazenie reCAPTCHY na webe, privátny kľúč bude použitý na overenie v PHP skriptoch.

PHP implementácia Google reCAPTCHA

4. Vytvoríme formulár, ktorý môžeme prevziať z oficiálnej dokumentácie od Google a upraviť. Všimnime si predovšetkým túto časť kódu:

<DIV CLASS="G-RECAPTCHA"
DATA-SITEKEY="YOUR_SITE_KEY"></DIV>

Práve tento zápis v praxi tvorí reCAPTCHU s použitím nášho verejného kľúča.

<HTML>
<HEAD>
<TITLE>RECAPTCHA DEMO: SIMPLE PAGE</TITLE>
<SCRIPT SRC="HTTPS://WWW.GOOGLE.COM/RECAPTCHA/API.JS" ASYNC
DEFER></SCRIPT>
</HEAD>
<BODY>
<FORM ACTION="?" METHOD="POST">
<DIV CLASS="G-RECAPTCHA" DATA-SITEKEY="YOUR_SITE_KEY"></DIV>
<BR/>
<INPUT TYPE="SUBMIT" VALUE="SUBMIT">
</FORM>
</BODY>
</HTML>

5. PHP skript, ktorý vyhodnotí CAPTCHU a spam vyzerá nasledovne. Je v ňom potrebné správne definovať privátny kľúč. Výsledná akcia je jednoducho definovaná podmienkou if / else.

IF(ISSET($_POST['G-RECAPTCHA-RESPONSE'])) {
// RECAPTCHA SETTINGS
$CAPTCHA = $_POST['G-RECAPTCHA-RESPONSE'];
$IP = $_SERVER['REMOTE_ADDR'];
$KEY = 'SECRET KEY';
$URL = 'HTTPS://WWW.GOOGLE.COM/RECAPTCHA/API/SITEVERIFY';
 
// RECAPTCH RESPONSE
$RECAPTCHA_RESPONSE =
FILE_GET_CONTENTS($URL.'?SECRET='.$KEY.'&RESPONSE='.$CAPTCHA.'&REMOTEIP='.$IP);
$DATA = JSON_DECODE($RECAPTCHA_RESPONSE);
 
IF(ISSET($DATA->SUCCESS) &&  $DATA->SUCCESS === TRUE)
{
// NIE JE TO SPAM, VYKONAJ AKCIU
}
ELSE
{
// JE TO SPAM
}
}

Ak máte záujem o integráciu systému reCAPTCHA pre váš projekt, kontaktujte ma.

KOMENTÁRE

Meno *

E-mail

Publikované: 5. 4. 2019 | prečítané: 162x | komentárov: (0)
Hosting zadarmo od WebSupport.sk

Tagy článkov

  hypso     web     grass     konferencia     idrisi     umb     tajchy     dem     publikacie     dizertacka     analyzy     qgis     arcgis     gis     surfer     geomedia     facebook  

Regina Spektor - Bartender

Kontakt
|
Vyhľadávanie
|
HTML5
|
CSS

webmaster: posta@dkubinsky.sk

Tvorba web stránok

Web stránky, e-shopy a aplikácie efektívne, funkčne, jednoducho - postavené na vlastnom redakčnom systéme.

Web stránky a E-shopy efektívne, funkčne, jednoducho...

Návrat hore