fbpx

Cum implementam Google reCaptcha in PHP?

0

 

Salutare si bine v-am regasit, astazi vom continua seria noastra de PHP, la sugestia lui SatanicaPC. Probabil ati observat mai multi acea verificare de la Google, cu codul captcha. Va voi explica pas cu pas ce trebuie sa faceti.

1. Intram pe Google reCaptcha si apasam pe „My reCaptcha”

2. Trebuie sa scriem un Label (o simpla denumire, eu o sa scriu „tutorial php”) si selectam reCAPTCHA v2

3. Trebuie sa completam mai multe domenii in casuta de domenii, in cazul de fata, domeniul nostru este tutoriale-pe.net

4. Am primit doua chei foarte importante: Site key (ce va fi vizibila utilizatorilor) si Secret key (care va fi folosita doar de tine in backend)

Creeam doua fisiere: home.html si verify.php. In fisierul home.html vom insera cheia noastra publica, iar mai apoi afisam codul captcha.

Iar in verify.php verificam daca codul captcha a fost completat corect.

<html>
    <head>
        <title>verificare captcha</title>
        <script src="https://www.google.com/recaptcha/api.js" async defer></script>
    </head>
    <body>
        <form method="post" action="verify.php">
            <div class="g-recaptcha" data-sitekey="cheia-publica"></div>
            <input type="submit" />
        </form>
    </body>
</html>
<?php
    $url = 'https://www.google.com/recaptcha/api/siteverify';
    $data = array(
        'secret' => 'cheia-secreta',
        'response' => $_POST["g-recaptcha-response"]
    );

    $options = array(
        'http' => array (
            'header' => "Content-Type: application/x-www-form-urlencoded\r\n".
            "Content-Length: ".strlen(http_build_query($data))."\r\n".
            "User-Agent:MyAgent/1.0\r\n",
            'method' => 'POST',
            'content' => http_build_query($data)
        )
    );

    $context  = stream_context_create($options);
    $verify = file_get_contents($url, false, $context);
    $captcha_success = json_decode($verify);

    if($captcha_success->success==false)
        echo "ceva gresit";
    else
        echo "corect";
?>

Daca aveti intrebari sau nelamuriri, ca de obicei, puteti sa le lasati in casuta de comentarii de mai jos, iar noi o sa va raspundem cat de repede putem!

Comentarii
Se incarca comentariile...

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More