PHP reCAPTCHA V2 class


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


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

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


Приклад:

Форма вводу з капчею reCAPTCHA V2 від 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 V2</title>
    <!--    reCaptcha V2 script  start   -->
    <script src='https://www.google.com/recaptcha/api.js'></script>
    <!--    reCaptcha V2 script  end     -->
</head>
<body>

<form action="/index.php" method="POST">
    <input type="text" name="name" value="<?php RecaptchaModule::get_data_from_name_field('name'); ?>" required/><br/>
    <!--    reCaptcha V2 block  start   -->
    <div class="g-recaptcha" data-sitekey="<?php echo RecaptchaModule::SITE_KEY; ?>"></div>
    <br>
    <!--    reCaptcha V2 block  end     -->
    <input type="submit" value="Submit"/>
</form>


</body>
</html>

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

Файл RecaptchaModule.php

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

class RecaptchaModule
{
    const SITE_KEY = '6LcWvqUUAAAAACh_IoR48vwyZcKTztc_F0zJ-4zA';
    const SECRET_KEY = '6LcWvqUUAAAAAD985okoam_3XeT80f2P-TAlzAzj';

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

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

    public static function get_data_from_name_field($field_name)
    {
            $data = $_POST[$field_name] ?? '';
            echo $data;
    }
}
?>

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

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

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


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