Hoi,

Ik ben bezig om reCAPTCHA in te bouwen in mijn registratieformulier.

Ik heb deze javascriptregel in de html erbij gezet:

<script src="https://www.google.com/recaptcha/api.js"; async defer></script>

En de volgende regel aan het formulier toegevoegd binnen de form:

<div class="g-recaptcha" data-sitekey="mijnsitekey even verwijderd"></div>

Ik kan nog steeds registreren zonder dat ik het selectievakje aanvink, wat doe ik fout?
Welke tutorial volg je?
Je zult echt nog een serverside controle met PHP moeten uitvoeren.
Nu heb je enkel nog maar het selectievakje gerenderd. Nu moet je nog zelf de afhandeling inbouwen of iemand wel of niet geweigerd wordt. De pagina die je noemde beschrijft ook enkel het tonen (display) van de ReCaptcha. Daarna staat er ook een link naar de pagina die beschrijft hoe een gebruiker herkend wordt (verify).

Dus kijk hier eens verder:
https://developers.google.com/recaptcha/docs/verify

Het komt erop neer dat je het formulier element g-recaptcha-response (dus $_POST['g-recaptcha-response']), samen met je secret-key, moet doorgeven aan het API-endpoint: https://www.google.com/recaptcha/api/siteverify. Dan krijg je een JSON-request terug waarin staat of iemand goedgekeurd is, of wat er fout is gegaan. Aan de hand hiervan kan jij in je validatie een mooie foutmelding genereren.
Dankjewel - Ariën - voor de uitleg.

Ik ben er eerst mee gestopt omdat het voor mij te ingewikkeld is om in te bouwen.
Dus ik ga externe hulp inroepen om het in te bouwen.

Dank voor je hulp.
Misschien lijkt het moeilijker dan het is.

https://stevencotterill.com/articles/adding-google-recaptcha-v3-to-a-php-form


met deze validatie ben je er al:

<?php // Check if form was submitted:
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['recaptcha_response'])) {

    // Build POST request:
    $recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
    $recaptcha_secret = 'YOUR_RECAPTCHA_SECRET_KEY';
    $recaptcha_response = $_POST['recaptcha_response'];

    // Make and decode POST request:
    $recaptcha = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
    $recaptcha = json_decode($recaptcha);

    // Take action based on the score returned:
    if ($recaptcha->score >= 0.5) {
        // Verified - send email
    } else {
        // Not verified - show form error
    }

} ?>
Ik vind het zelf geen handige keuze om belangrijke dingen zoals een CAPTCHA van een andere site af te laten hangen waar je geen controle over hebt.
Is het geen idee om een eigen CAPTCHA gebruiken vanaf een eigen server?
Ad Fundum op 03/12/2020 19:33:19

Ik vind het zelf geen handige keuze om belangrijke dingen zoals een CAPTCHA van een andere site af te laten hangen waar je geen controle over hebt.
Is het geen idee om een eigen CAPTCHA gebruiken vanaf een eigen server?

Het ligt een beetje aan wat voor site je hebt.
Ook van de grotere sites weet ikd at die ReCaptcha hebben, en daar zit jijst de kracht achter dat die aan de hand van diverse factoren, neurale netwerken en kunstmatige intelligentie kunnen bepalen of iemand een bot is, of niet.

ReCaptcha V3 is zelfs captcha-loos, volledig geautomatiseerd en werkt op een score.

Reageren