Гайд Подключение reCaptcha на сайт

Забаненный
Статус
Оффлайн
Регистрация
22 Фев 2018
Сообщения
1,902
Реакции[?]
532
Поинты[?]
3K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Добрый вечер, если у вас на сайте нет рекапчи, это печально, так как селениум все еще хорошо работает и ничто не мешает использовать его для получения большого количества аккаунтов, или совершения каких-то постоянных, непрерывных действий. Собственно, вот гайд по установке рекапчи.

Первый шаг:

Нужно зарегать рекапчу на свой сайт -
Пожалуйста, авторизуйтесь для просмотра ссылки.

В конфиг выносим все данные, прописаные у вас по вышеуказанной ссылке.

PHP:
define('CODE', 'ваш секретный код');
define('URL', 'https://www.google.com/recaptcha/api/siteverify');
Второй шаг:

В бошку вставляем скрипт рекапчи:
<script src="
Пожалуйста, авторизуйтесь для просмотра ссылки.
" async defer></script>

И устанавливаем в заранее приготовленную форму наше поле с подтверждением
Его также, как и все другие данные можно вытащить из вашей админки рекапчи, выглядеть будет так, только с вашим id:
<div class="g-recaptcha" data-sitekey="айдишник_сайта"></div>

Третий шаг (перейдем к коду):

PHP:
// обрабатываем запрос формы, которая была отправлена (рассматриваем POST) + надо инклюднуть конфиг

if(isset($_POST["g-recaptcha-response"])){

    $request = URL.'?secret='.CODE.'&response='.$_POST['g-recaptcha-response'].'&remoteip'.$_SERVER['REMOTE_ADDR'];
    $handler = json_decode(file_get_contents($request));
    
    // мы приняли запрос и обработали выходные данные, раскодировав json-ку
    
    // последний шаг - проверка на успешный ввод капчи. Ну, тут все просто.
    
    if ($handler-> success == True){
    // do stuff
    }else{
        exit("Вы - робот.")
    }

}
Вопросы - ответы. Только адекватные, пожалуйста.
 
Забаненный
Статус
Оффлайн
Регистрация
2 Окт 2020
Сообщения
1,209
Реакции[?]
266
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
У самого гугла есть гайд как это всё делается, для чего тема?
 
Забаненный
Статус
Оффлайн
Регистрация
22 Фев 2018
Сообщения
1,902
Реакции[?]
532
Поинты[?]
3K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
У самого гугла есть гайд как это всё делается, для чего тема?
Скопировал - вставил. Если думать как ты - гайды вообще не нужны, ведь везде есть документация, только вот проблема в том, что в документации ты не сможешь задать вопрос, неправда ли? Если у человека что-то неполучается с рекапчей - пусть зайдет и спросит. В чем проблема?
 
Забаненный
Статус
Оффлайн
Регистрация
2 Окт 2020
Сообщения
1,209
Реакции[?]
266
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Скопировал - вставил. Если думать как ты - гайды вообще не нужны, ведь везде есть документация, только вот проблема в том, что в документации ты не сможешь задать вопрос, неправда ли? Если у человека что-то неполучается с рекапчей - пусть зайдет и спросит. В чем проблема?
Ладно, вопросов не имею
 
Начинающий
Статус
Оффлайн
Регистрация
18 Дек 2020
Сообщения
35
Реакции[?]
3
Поинты[?]
0
За инструкцию спасибо. Вот только не очень прикольно что рекаптча как пишет гугл "эволюционировала" иии встречайте - reCAPTCHA Enterprise, платно (Contact sales for pricing)
 
Новичок
Статус
Оффлайн
Регистрация
27 Окт 2017
Сообщения
2
Реакции[?]
1
Поинты[?]
0
Так и хочется высловить собственное впечетления данному автору.

Во-первый правильно будет if($handler->success === true) или if($handler->success). Но это не так важно.
Во-вторых что если REMOTE_ADDR не сможет выдать IP, так как стоит Cloudflare, что скажете? Я вот знаю, но хочу спросить у автора поста.
 
Забаненный
Статус
Оффлайн
Регистрация
22 Фев 2018
Сообщения
1,902
Реакции[?]
532
Поинты[?]
3K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Так и хочется высловить собственное впечетления данному автору.

Во-первый правильно будет if($handler->success === true) или if($handler->success). Но это не так важно.
Во-вторых что если REMOTE_ADDR не сможет выдать IP, так как стоит Cloudflare, что скажете? Я вот знаю, но хочу спросить у автора поста.
1. Воспользуйтесь расширением mod_cloudflare под апач.

2. В ином случае, есть техника которой пользуется достоточно много людей.

PHP:
    if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
              $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
    }
 
Новичок
Статус
Оффлайн
Регистрация
27 Окт 2017
Сообщения
2
Реакции[?]
1
Поинты[?]
0
1. Воспользуйтесь расширением mod_cloudflare под апач.

2. В ином случае, есть техника которой пользуется достоточно много людей.

PHP:
    if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
              $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
    }
Я прекрасно знаю. Спасибо.
 
Сверху Снизу