PHP reCAPTCHA V3 class


reCAPTCHA V3 від GOOGLE призачена для фільтрування роботів при роботі з формами вводу.


PHP клас для роботи з reCAPTCHA V3:

Напишемо php клас для для пошуку роботів на сайті з допомогою reCAPTCHA V3:


Приклад:

Форма вводу з капчею reCAPTCHA V3 від google:

Файл index.php :

<?php
include_once 'RecaptchaModule.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    $recaptcha = new RecaptchaModule();
    if ($recaptcha->isChecked()) {
        echo 'HELLO PEOPLE';
        echo '<br>' . $_POST['name'];
    } else {
        echo 'HELLO ROBOT';
    }

}

?>


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>site4study.com ReCaptcha V3</title>
    <!--    reCaptcha V3 script  start   -->
    <script src='https://www.google.com/recaptcha/api.js?render=<?php echo RecaptchaModule::SITE_KEY; ?>'></script>
    <!--    reCaptcha V3 script  end     -->
</head>
<body>

<form action="/index.php" method="POST">
    <input type="text" name="name"/><br/>
    <!--    reCaptcha V3 block  start   -->
    <input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response"/><br>
    <!--    reCaptcha V3 block  end     -->
    <input type="submit" value="Submit"/>
</form>

<!--    reCaptcha V3 script  start   -->
<script>
    grecaptcha.ready(function () {
        grecaptcha.execute('<?php echo RecaptchaModule::SITE_KEY; ?>', {action: 'homepage'})
            .then(function (token) {
                // console.log(token);
                document.getElementById('g-recaptcha-response').value = token;
            });
    });
</script>
<!--    reCaptcha V3 script  end     -->

</body>
</html>

PHP клас для роботи з капчею reCAPTCHA V3 від google.

Файл RecaptchaModule.php

<?php
//  get SITE_KEY and SECRET_KEY for your site in https://www.google.com/recaptcha/admin
//  name: reCaptcha V3 MODULE

class RecaptchaModule
{
    const SITE_KEY = '6Lc206QUAAAAAIb5Ik5O_lJnDUj1Fi7orh64wZ_N';
    const SECRET_KEY = '6Lc206QUAAAAACNa8oFnTcX9q4VQrKvkMBiWnY0v';

    private function getCaptcha($secretKey)
    {
        $response = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=' . self::SECRET_KEY . '&response=' . $secretKey);
        $result = json_decode($response);
        return $result;
    }

    public function isChecked($scoreBotLevel = 0.5)
    {
        if (isset($_POST['g-recaptcha-response'])) {
            $result = $this->getCaptcha($_POST['g-recaptcha-response']);
            //    var_dump($result);
            if ($result->success == true && $result->score > $scoreBotLevel) {
//                echo "Succes!";
                return true;
            } else {
//                echo "You are a Robot!!";
                return false;
            }
        }
    }
}

Ключі для роботи з капчею можна найти на сайті https://www.google.com/recaptcha/admin

Реєструємо свій сайт і копіюємо ключі в клас RecaptchaModule . Вставляємо свої ключі в константи SITE_KEY і SECRET_KEY у файлі RecaptchaModule.php .

Далі тестуємо капчу.


Наш партнер:
beta test mp3 playlist downloader