Всем доброго дня. Как только появилось свободное время я все таки решил написать статью посвященную установке Google reCaptcha.

Получение recaptcha ключей

Для начала работы с нашей гуглокапчей нам необходимо получить 2 специальных ключа.

Первый ключ используется для отображения виджета на вашем сайте.

Второй ключ(секретный) используется для аутентификации виджета капчи на вашем сайте, и серверами google для проверки результата отправленного людьми, или ботами.

Чтобы получить эти ключи у вас должна быть учетная запись гугл. Если таковая есть то переходите по данной ссылке и авторизуйтесь.

После авторизации вы увидите панель reCAPTCHA и форму регистрации вашего сайта.

 

После заполнения и отправки формы регистрации сайта вы попадете на страницу с ключами и всей необходимой нам информацией.

capcha

 

Установка reCapcha на форму

Для примера я создал простую форму авторизации. Она будет отправлять данные POST запросом на сервер.

Следующим шагом после создания формы необходимо подключить скрипт капчи в секцию head вашего сайта, а также добавить блок с капчей в то место формы где она вам нужна. Весь необходимый код приведён на странице с ключами и всей дополнительной информацией.

В конечном итоге у вас должна получится следующая структура формы:

<script src='https://www.google.com/recaptcha/api.js'></script>
<!--Скрипт располагать в блоке head-->
<form action="/form.php" method="post">
    <input type="text" name="login">
    <input type="password" name="password">
    <div class="g-recaptcha" data-sitekey="Тут указываете ваш первый ключ"></div>
    <!--блок кнопки reCapcha-->
    <button>Отправить</button>
</form>

Форма готова. Осталось только вставить свой ключ в атрибут data-sitekey и капча заработает!

Проверка reCapcha на сервере

Следующим этапом будет написание проверки результата отправки формы на сервере.

Первым делом необходимо проверить были ли вообще переданы в POST массив данные от капчи. Если таких данных не поступало то мы просто пропускаем все проверки и просим пройти валидацию.

<?php
if (isset($_POST['g-recaptcha-response'])){
    //проверяем дальше
}else{
    exit('Вы не прошли валидацию reCaptcha');
}
?>

Дальше переходим к основной части проверки. Приведу сразу весь код и поясню что за что отвечает.

<?php
if (isset($_POST['g-recaptcha-response'])) {
    $url_to_google_api = "https://www.google.com/recaptcha/api/siteverify";
    $secret_key = '6LcdBBYUAAAAAJcHFDLRWfLYwBNomKtKGjHu21tg';
    $query = $url_to_google_api . '?secret=' . $secret_key . '&response=' . $_POST['g-recaptcha-response'] . '&remoteip=' . $_SERVER['REMOTE_ADDR'];
    $data = json_decode(file_get_contents($query));
    if ($data->success) {
        // Продолжаем работать с данными для авторизации из POST массива
    } else {
        exit('Извините но похоже вы робот \(0_0)/');
    }
} else {
    exit('Вы не прошли валидацию reCaptcha');
}
?>

Этого базового функционала достаточно для полноценной работы с google reCaptcha.

Интеграция с WordPress

В случае с WordPress для этой же задачи прекрасно подойдет плагин - Google Captcha (reCAPTCHA) by BestWebSoft. В него встроен обширный функционал для интеграции капчи на разные разделы WordPress сайта.

Его настройка крайне примитивна, все что вам нужно сделать это вставить выданные вам ключи в определенные поля в настройках плагина.

Google Captcha

Далее можете просто указать в каких местах сайта вы хотите видеть желаемую гуглокапчу.

Это все что я хотел поведать об установке reCaptcha.
В связи с неплохим интересом к данной статье я решил выпустить с скором времени ещё одну статью посвященную уже работе с последней версией гугл капчи. Подписывайтесь на обновления чтобы не пропустить эту статью.
Всего хорошего!

dmkweb.ru Права на контент защищены.