✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Integroi Google Invisible reCAPTCHA PHP: hen

32

Captchan lisääminen verkkosivustolomakkeisiin on nykyään välttämätöntä. Muuten postilaatikkosi ja tietokanta täyttävät tonnia roskapostia. Se vain tuhlaa aikaa sähköpostien puhdistamiseen ja vie myös ylimääräistä tilaa palvelintietokannassa.

Google reCAPTCHA on parempi tapa suojata lomakkeesi botteja vastaan. ReCAPTCHA: n avulla jatkat lomakkeitasi vain, jos sillä on todellisia ihmisen vuorovaikutuksia.

Tässä artikkelissa tutkitaan, miten Google Invisible reCAPTCHA integroidaan verkkosivustolomakkeisiin PHP: n kanssa. Invisible reCAPTCHA: n tapauksessa vierailijoiden ei tarvitse ratkaista pulmia. Sen on vahvistettava pyyntö taustalla palvelinpuolella.

Rekisteröi sivusto ja hanki API-avaimet

Aloita rekisteröimällä sivustosi täällä – https://www.google.com/recaptcha/admin.

Nosta vaihtoehto ‘Invisible reCAPTCHA badge’ reCAPTCHA v2: sta.

Integroi Google Invisible reCAPTCHA PHP: hen

Lisää verkkotunnuksesi samassa muodossa. Voit lisätä niin monta verkkotunnusta kuin haluat. Paikalliselle palvelimelle lisätään toimialue localhostina. Kun lähetät lomakkeen, saat API-avaimet. Kopioi nämä avaimet. Se vaaditaan seuraavissa vaiheissa.

Integroi Google Invisible reCAPTCHA PHP: hen

Integroi Google Invisible reCAPTCHA

Näkymättömän reCAPTCHA: n lisääminen lomakkeeseen vaatii hieman erilaista lähestymistapaa. Meidän on välitettävä data-attribuutit painikkeeseen ja lähetettävä lomake JavaScriptin avulla seuraavasti.

<form method="post" id="userForm">
    <p><input type="text" class="form-control" name="fullname" placeholder="Enter full name" /></p>
    <p><button class="g-recaptcha btn btn-primary" data-sitekey="YOUR_SITE_KEY" data-callback="submitForm">Submit</button></p>
</form>
 
<script src='https://www.google.com/recaptcha/api.js'></script>
<script>
function submitForm() {
    document.getElementById('userForm').submit();
}
</script>

Tämä koodi lisää Näkymätön reCAPTCHA-lomakkeen. Jos lataat sivun uudelleen, näet reCAPTCHA-logon sivun oikeassa alakulmassa.

Tässä olemme siirtäneet reCAPTCHA-sivuston avaimen data-sitekey-attribuutille ja menetelmän nimen ‘submForm’ attribuutille ‘data-callback’. Kun käyttäjä napsauttaa painiketta, se kutsuu takaisinsoittomenetelmän, joka lähettää lomakkeen JavaScriptiä käyttäen.

Nyt on aika tarkistaa palvelinpuoli. Tarkistamme reCAPTCHA-vastauksen arvon Google API: n URL-osoitteeseen seuraavasti.

if (isset($_POST['g-recaptcha-response'])) {
    $secret_key = 'YOUR_SECRET_KEY';
    $url = 'https://www.google.com/recaptcha/api/siteverify?secret='.$secret_key.'&response='.$_POST['g-recaptcha-response'];
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    $data = curl_exec($curl);
    curl_close($curl);
    $responseCaptchaData = json_decode($data);
 
    if($responseCaptchaData->success) {
        echo 'Captcha verified';
        //proceed with form values
    } else {
        echo 'Verification failed';
    }
}

Kun oikea ihminen lähettää lomakkeen, se luo reCAPTCHA-vastauksen, jonka yllä oleva koodi vahvistaa Google-sovellusliittymällä. Jos lomake lähetetään bottien kautta, yllä oleva vahvistus epäonnistuu. Lomaketta tulisi jatkaa vain, jos vastaus onnistuu.

Lopullinen koodimme on seuraava.

<?php
if (isset($_POST['g-recaptcha-response'])) {
    $secret_key = 'YOUR_SECRET_KEY';
    $url = 'https://www.google.com/recaptcha/api/siteverify?secret='.$secret_key.'&response='.$_POST['g-recaptcha-response'];
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    $data = curl_exec($curl);
    curl_close($curl);
    $responseCaptchaData = json_decode($data);
 
    if($responseCaptchaData->success) {
        echo 'Captcha verified';
        //proceed with form values
    } else {
        echo 'Verification failed';
    }
}
?>
<form method="post" id="userForm">
    <p><input type="text" class="form-control" name="fullname" placeholder="Enter full name" /></p>
    <p><button class="g-recaptcha btn btn-primary" data-sitekey="YOUR_SITE_KEY" data-callback="submitForm">Submit</button></p>
</form>
 
<script src='https://www.google.com/recaptcha/api.js'></script>
<script>
function submitForm() {
    document.getElementById('userForm').submit();
}
</script>

Se siitä! Nauti roskapostin ilmaisista lomakkeista verkkosivustollasi. Haluaisin kuulla ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.

Aiheeseen liittyvät artikkelit

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja