Доброго времени суток!
Маркет плейс лицензия вышла, а в данный момент нужна только reCAPTCHA в форме регистрации.
Выполнил следующие действия:
1. Заходим в личный кабинет ReCaptcha в Google , для этого у вас должен быть аккаунт в гугл, т.е. заведенная почта. И в этом личном кабинете добавляем сайт, на который встраиваем ReCaptcha. После добавления сайта вы получите 2-а ключа, которые нам нужны дальше.
2. Скачиваем библиотеку ReCaptcha тут , далее из этой библиотеки берем только файлы из директории /SRC/ autoload.php и директорию /ReCaptcha/ и кjпируем их в /bitrix/php_interface/include/ (директорию /include/ нужно создать, ее там изначально нет).
3. Далее в init,php подключаем капчу с ключами, вставляя следующий код в самом начале файла, ну после <? :
Ключи заменяем соответственно на свои, которые получили в личном кабинете.
4. Далее в шаблоне сайта или компонента подключаем js с Google:
5. В шаблоне компонента (template.php), в месте отображения капчи вставляем код:
6. В компоненте добавляем проверку, т.е. в файл /bitrix/components/bitrix/компонент/component.php (но только, лучше создать свое пространство имен, чтобы обновлениями не затереть все)
Все сделал, но 6 пункт не срабатывает! Не срабатывает запрет за регистрацию при не заполненной reCAPTCHA
Сообщение - "Ошибка! Проверка не пройдена." не выводится! Как решить данную проблему?
Маркет плейс лицензия вышла, а в данный момент нужна только reCAPTCHA в форме регистрации.
Выполнил следующие действия:
1. Заходим в личный кабинет ReCaptcha в Google , для этого у вас должен быть аккаунт в гугл, т.е. заведенная почта. И в этом личном кабинете добавляем сайт, на который встраиваем ReCaptcha. После добавления сайта вы получите 2-а ключа, которые нам нужны дальше.
2. Скачиваем библиотеку ReCaptcha тут , далее из этой библиотеки берем только файлы из директории /SRC/ autoload.php и директорию /ReCaptcha/ и кjпируем их в /bitrix/php_interface/include/ (директорию /include/ нужно создать, ее там изначально нет).
3. Далее в init,php подключаем капчу с ключами, вставляя следующий код в самом начале файла, ну после <? :
| Код |
|---|
@require_once 'include/autoload.php';
define("RE_SITE_KEY","6Lfi5R8TAAAAACpUg7U2IJjuTVMGglUsz-fgTgdu");
define("RE_SEC_KEY","6Lfi5R8TAAAAADVYQPeYcECtyFAQATCoIkruBdhrbn"); |
Ключи заменяем соответственно на свои, которые получили в личном кабинете.
4. Далее в шаблоне сайта или компонента подключаем js с Google:
| Код |
|---|
<sc ript src="https://www.google.com/recaptcha/api.js" async defer></sc ript> |
5. В шаблоне компонента (template.php), в месте отображения капчи вставляем код:
| Код |
|---|
<div class="g-recaptcha" data-sitekey="<?=RE_SITE_KEY?>"></div> |
6. В компоненте добавляем проверку, т.е. в файл /bitrix/components/bitrix/компонент/component.php (но только, лучше создать свое пространство имен, чтобы обновлениями не затереть все)
| Код |
|---|
$recaptcha = new \ReCaptcha\ReCaptcha(RE_SEC_KEY);
$resp = $recaptcha->verify($_REQUEST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']);
if (!$resp->isSuccess()){
foreach ($resp->getErrorCodes() as $code) { echo "Ошибка! Проверка не пройдена.";
echo $code;
return; } }
|
Все сделал, но 6 пункт не срабатывает! Не срабатывает запрет за регистрацию при не заполненной reCAPTCHA
Сообщение - "Ошибка! Проверка не пройдена." не выводится! Как решить данную проблему?