Форум программистов, компьютерный форум, киберфорум
1С Битрикс
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
9 / 9 / 2
Регистрация: 29.05.2011
Сообщений: 524
1

Рекапча bitrix:main.feedback

02.07.2019, 11:12. Просмотров 920. Ответов 1
Метки нет (Все метки)

Доброго времени суток!
На сайте используется форма bitrix:main.feedback
Необходимо в данную форму вместо капчи от Битрикса поставить рекапчу от гугл.
В файле template.php bitrix:main.feedback есть подключение капчи
PHP
1
2
3
4
5
6
7
<?if($arParams["USE_CAPTCHA"] == "Y"):?>
            <strong><?=GetMessage("MFT_CAPTCHA")?></strong><br/>
            <input type="hidden" name="captcha_sid" value="<?=$arResult["capCode"]?>">
            <img src="/bitrix/tools/captcha.php?captcha_sid=<?=$arResult["capCode"]?>" width="180" height="40" alt="CAPTCHA"><br/>
            <strong><?=GetMessage("MFT_CAPTCHA_CODE")?><span class="mf-req">*</span></strong><br/>
            <input type="text" name="captcha_word" size="30" maxlength="50" value=""/><br/>
        <?endif;?>
Вместо этого подключения прописываю
HTML5
1
<div class="g-recaptcha" data-sitekey="<?=RE_SITE_KEY?>"></div>
В файле component.php
PHP
1
2
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<div class="g-recaptcha" data-sitekey="<?=RE_SITE_KEY?>"></div>
В init.php
PHP
1
2
3
@require_once 'include/autoload.php';
define("RE_SITE_KEY","здесь ключ");
define("RE_SEC_KEY","здесь ключ");
Отображается рекапча внизу формы, но с ошибкой "Ошибка: неверный ключ"
Подскажите, пожалуйста, что не так делаю?

Добавлено через 29 минут
Поправка: в файле component.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
if($arParams["USE_CAPTCHA"] == "Y")
{
    $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;
    }
    }
}
Тогда ошибка в "Class 'ReCaptcha\ReCaptcha' not found"
Делаю согласно инструкции

Добавлено через 11 минут
Файлы autoload.php и были добавлены не туда
Нужно /home/bitrix/www/local/php_interface/include. А было /home/bitrix/www/bitrix/php_interface/include
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.07.2019, 11:12
Ответы с готовыми решениями:

Есть ли возможность определения фильтра в комплексном компоненте bitrix:forum || bitrix:forum.index ?
Столкнулся с необходимостью фильтрации тем форумов. Поиск (bitrix:forum.search) не подходит,...

Как разместить bitrix::news компонент в шаблоне компонента news::detail другого bitrix::news?
Доброго времени суток, не так давно окунулся в мир битрикс разработки и передо мной встал следующий...

Id раздела bitrix
Как можно получить id текущего раздела на странице в cms bitrix?

Метатеги bitrix
Пытаюсь прописать индивидуальные мета-теги для страниц которые создаются динамически. Но не...

1
9 / 9 / 2
Регистрация: 29.05.2011
Сообщений: 524
04.07.2019, 13:22  [ТС] 2
На данный момент получается, что если попробовать отправить форму с заполненной рекапчей, то ошибка "Ошибка! Проверка не пройдена.".
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if($arParams["USE_CAPTCHA"] == "Y")
        {
            $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) 
                {
                    $arResult['ERROR_MESSAGE'][] = "Ошибка! Проверка не пройдена. ";
                    return;
                }
            }
 
        }
Подскажите, пожалуйста, что делаю не так? Спасибо.

Добавлено через 2 часа 30 минут
При распечатке $resp
PHP
1
echo "<pre>" .print_r($resp,1)."</pre>";
приходит ошибка
PHP
1
2
3
4
[errorCodes:ReCaptcha\Response:private] => Array
        (
            [0] => connection-failed
        )
Хотя в $_REQUEST['g-recaptcha-response'] есть запись, в $_SERVER['REMOTE_ADDR'] также есть запись
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.07.2019, 13:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Интеграция Bitrix с 1C
Доброго времени суток. У меня есть измененная версия 1С комани, стандартный способ интеграции не...

Микроразметка Bitrix 10.8
Доброго времени суток уважаемые форумчане. Решил внедрить на битрикс 10.8 базовую микроразметку, но...

Bitrix:form
Добрый день! На сайте стоит веб форма Bitrix:form, есть обязательные поля. Одно поле нужно сделать...

Bitrix menu
Добрый день Форумчане. Нужна помощь, есть меню которое правится через инфоблок, можно добавить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.