Подключаем Google reCaptcha v.2


Компания Google представила новую версию reCaptcha API: новый дизайн и механизм проверки. Данная утилита поможет защитить ваши формы от спама и роботов. В этом уроке мы расскажем как внедрить новую версию reCaptch. В частности создадим скрипт входа пользователя на сайт.

Подключаем Google reCaptcha v.2

Получение reCaptcha Key

Жмите сюда для создания приложения Google reCaptcha.

HTML Code

HTML код с виджетом Google reCaptcha. Тут вам необходимо изменить значение Google Site Key.

<html>
<head>
    /* Google reCaptcha JS */
    <script src="https://www.google.com/recaptcha/api.js"></script>
</head>
<body>
<form action="" method="post">
    Username
    <input type="text" name="username" class="input" />
    Password
    <input type="password" name="password" class="input" />
    <div class="g-recaptcha" data-sitekey="Google Site Key"></div>
    <input type="submit"  value="Log In" />
    <span class='msg'><?php echo $msg; ?></span>
</form>
</body>
</html>

Подключаем Google reCaptcha v.2


index.php

В вашем случае необходимо изменить Google Secret Key.

<?php
include("db.php");
session_start();

$msg='';
if($_SERVER["REQUEST_METHOD"] == "POST")
{
    $recaptcha=$_POST['g-recaptcha-response'];
    if(!empty($recaptcha))
    {
        include("getCurlData.php");
        $google_url="https://www.google.com/recaptcha/api/siteverify";
        $secret='Google Secret Key';
        $ip=$_SERVER['REMOTE_ADDR'];
        $url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;
        $res=getCurlData($url);
        $res= json_decode($res, true);
        //reCaptcha введена
        if($res['success'])
        {
            // Продолжаем проверку данных формы
        }
        else
        {
            $msg="Please re-enter your reCAPTCHA.";
        }

    }
    else
    {
        $msg="Please re-enter your reCAPTCHA.";
    }

}
?>

getCurlData.php

CURL-функция для проверки Google reCaptcha. Активируйте расширение php_curl в файле php.ini.

<?php
function getCurlData($url)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);
    curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16");
    $curlData = curl_exec($curl);
    curl_close($curl);
    return $curlData;
}

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://www.9lessons.info/2014/12/google-new-recaptcha-using-php-are-you.html
Перевел: Станислав Протасевич

ПОЛЕЗНО  PHP GD: Цветное изображение перевести в черно-белое

ReCAPTCHA placeholder element must be empty

Remove this from the <head></head>. It's redundant.

<script src='https://www.google.com/recaptcha/api.js'></script>