Перейти к содержанию
Официальный форум поддержки Simpla

[2.*] reCAPTCHA API 2.0 (капча от гугл)


Рекомендуемые сообщения

recaptcha работает на всех страницах, кроме Корзины!

 

получаю ошибку

"missing-input-response"

 

100 раз все перепроверил - ни в какую не хочет работать

 

Поможете!?

Ссылка на сообщение
Поделиться на другие сайты
  • 4 месяца спустя...
  • Ответов 93
  • Дата создания
  • Последний ответ

Лучшие авторы в теме

Лучшие авторы в теме

$response = null;

$reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code); 

Вот это надо вставлять не после class а в ФУНКЦИЮ

Подключал капчу для блога и косякнул как все :D

 

Сначала вставил сюда:

class BlogView extends View
{
$response = null;
$reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code); 

Получил ошибку syntax error, unexpected '$response' (T_VARIABLE), expecting function (T_FUNCTION) or const (T_CONST), прочитал комент Kosjak76

и исправил, нужно вставлять сюда:

 

// Принимаем комментарий
        if ($this->request->method('post') && $this->request->post('comment'))
        {
            $response = null;
            $reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code);

Спасибо за подсказку

Изменено пользователем FIMA
Ссылка на сообщение
Поделиться на другие сайты
  • 3 месяца спустя...

Ребята. Сделал всё по инструкции. Единственное что, взял файлы уже готовые. Которые предоставил  Ardion.
Всё подобавлял, ввёл ключи от капчи Гугл. При регистрации (проверяю) - очень долгий таймаут и сообщение - неверно введена капча!


в логах:

[Mon Feb 17 15:55:36.286289 2020] [:error] [pid 16263] [client 123.34.112.130:59995] PHP Warning:  Query was empty [] in /site/api/Database.php on line 105, referer: https://site/simpla/index.php?module=SettingsAdmin


Я так понял, нужно либо заново ключи перегенерировать, либо что-то где-то добавить, по причине того, что api-ключи не подхватываются сайтом (вроде бы.) но я не уверен. подскажите, кто будет добр )

Ссылка на сообщение
Поделиться на другие сайты

Ребята. Сделал всё по инструкции. Единственное что, взял файлы уже готовые. Которые предоставил Ardion.

Всё подобавлял, ввёл ключи от капчи Гугл. При регистрации (проверяю) - очень долгий таймаут и сообщение - неверно введена капча!

 

 

в логах:

[Mon Feb 17 15:55:36.286289 2020] [:error] [pid 16263] [client 123.34.112.130:59995] PHP Warning:  Query was empty [] in /site/api/Database.php on line 105, referer: https://site/simpla/index.php?module=SettingsAdmin

Я так понял, нужно либо заново ключи перегенерировать, либо что-то где-то добавить, по причине того, что api-ключи не подхватываются сайтом (вроде бы.) но я не уверен. подскажите, кто будет добр )

На странице «Настройка сайта» ключи прописали и сохранили?

Ссылка на сообщение
Поделиться на другие сайты

На странице «Настройка сайта» ключи прописали и сохранили?

 

да!

 

pic12.jpg

 

в логах: 

 

[Mon Feb 17 16:18:03.159921 2020] [:error] [pid 8119] [client 127.0.0.1:1132] PHP Warning:  Placeholder substitution error. Diagnostics: "UPDATE s_settings SET value=UNKNOWN_PLACEHOLDER_0 WHERE name=?" in /site/api/Database.php on line 132, referer: htps://site/simpla/index.php?module=SettingsAdmin
[Mon Feb 17 16:18:03.159978 2020] [:error] [pid 8119] [client 127.0.0.1:1132] PHP Warning:  Query was empty [] in /site/api/Database.php on line 105, referer: htps://site/simpla/index.php?module=SettingsAdmin

Изменено пользователем mdmatic
Ссылка на сообщение
Поделиться на другие сайты


в общем. поправил там переменную одну. по-прежнему валится мускуль.


[Mon Feb 17 16:51:04.803817 2020] [:error] [pid 16264] [client 159.65.80.170:60679] PHP Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/admin/web/veles.shop/public_html/captcha/ReCaptcha/RequestMethod/Post.php on line 68, referer: https://veles.shop/user/register
[Mon Feb 17 16:51:04.803877 2020] [:error] [pid 16264] [client 159.65.80.170:60679] PHP Warning: file_get_contents(https://www.google.com/recaptcha/api/siteverify): failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/admin/web/veles.shop/public_html/captcha/ReCaptcha/RequestMethod/Post.php on line 68, referer: https://veles.shop/user/register
[Mon Feb 17 16:51:04.804164 2020] [:error] [pid 16264] [client 159.65.80.170:60679] PHP Warning: MySQL server has gone away [SELECT count(*) as count FROM s_users WHERE email='ewrwef@ukr.net'] in /home/admin/web/veles.shop/public_html/api/Database.php on line 105, referer: https://veles.shop/user/register
[Mon Feb 17 16:51:04.806723 2020] [:error] [pid 16264] [client 159.65.80.170:60679] PHP Warning: MySQL server has gone away [SELECT b.id, b.url, b.name, b.annotation, b.text,\r\n\t\t b.meta_title, b.meta_keywords, b.meta_description, b.visible,\r\n\t\t b.date\r\n\t\t FROM s_blog b WHERE 1 AND b.visible = 1 \r\n\t\t ORDER BY date DESC, id DESC LIMIT 0, 9 ] in /home/admin/web/veles.shop/public_html/api/Database.php on line 105, referer: https://veles.shop/user/register
[Mon Feb 17 16:51:04.806756 2020] [:error] [pid 16264] [client 159.65.80.170:60679] PHP Warning: MySQL server has gone away in /home/admin/web/veles.shop/public_html/api/Database.php on line 150, referer: https://veles.shop/user/register
[Mon Feb 17 16:51:04.806827 2020] [:error] [pid 16264] [client 159.65.80.170:60679] PHP Warning: MySQL server has gone away [SELECT DISTINCT b.id, b.name, b.url, b.meta_title, b.meta_keywords, b.meta_description, b.description, b.image\r\n\t\t\t\t\t\t\t\t \t\tFROM s_brands b ORDER BY b.name] in /home/admin/web/veles.shop/public_html/api/Database.php on line 105, referer: https://veles.shop/user/register
[Mon Feb 17 16:51:04.806835 2020] [:error] [pid 16264] [client 159.65.80.170:60679] PHP Warning: MySQL server has gone away in /home/admin/web/veles.shop/public_html/api/Database.php on line 150, referer: https://veles.shop/user/register
Изменено пользователем mdmatic
Ссылка на сообщение
Поделиться на другие сайты
  • 9 месяцев спустя...

Народ, прошу помочь с реКаптчей. Перепробовал все, что предлагается в этой теме (кроме прикрепленных файлов, которые скачиваются пустыми, почему-то). На страницах товаров в отзывах реКаптча не работает. У меня добавлен модуль быстрого заказа и я не пойму, где я что не так делаю... Короче прикладываю файл, буду благодарен, если кто посмотрит.https://yadi.sk/d/YuPUmv08OrQiPg

чет файл подгружаться не хочет, выложил на ЯДиск.

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

Ребят, всё по инструкции делал.
Вроде несложно, да и внимательно..

Но ошибку выбрасывает при переходе в корзину
 

Parse error: syntax error, unexpected '$response' (T_VARIABLE), expecting function (T_FUNCTION) in /home/am5999/xn----8sbagbcpvbrptv3l.xn--j1amh/www/view/CartView.php on line 19

Что может быть?

Ссылка на сообщение
Поделиться на другие сайты
58 минут назад, madison21 сказал:

 



Parse error: syntax error, unexpected '$response' (T_VARIABLE), expecting function (T_FUNCTION) in /home/am5999/xn----8sbagbcpvbrptv3l.xn--j1amh/www/view/CartView.php on line 19

 

Так Вам же внимательно расписали ошибку, даже указали строчку. Посмотрите правильностью еще раз построчно.

Изменено пользователем simpla24
Ссылка на сообщение
Поделиться на другие сайты

Специально заново переделал, по несколько раз перепроверял.
На страницах Корзина, Товар, Контакты (всего 5)... выдаёт эту ошибку в файлах CartView.php, ProductView.php, FeedbackView.php (всего 5)... именно на строке 19.

А там везде в 5 файлах я произвёл замену с

class FeedbackView extends View
{

на

class FeedbackView extends View
{
$response = null;
$reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code);

Разве не так?
Подскажите пожалуйста, кто разобрался..

Ссылка на сообщение
Поделиться на другие сайты
В 25.06.2016 в 01:51, Netrea сказал:

class ProductView extends View
{
    function fetch()
    {   
        $response = null;
$reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code);

Внимательно перечитайте первую страницу темы

Ссылка на сообщение
Поделиться на другие сайты
8 часов назад, madison21 сказал:

Специально заново переделал, по несколько раз перепроверял.
На страницах Корзина, Товар, Контакты (всего 5)... выдаёт эту ошибку в файлах CartView.php, ProductView.php, FeedbackView.php (всего 5)... именно на строке 19.

А там везде в 5 файлах я произвёл замену с


class FeedbackView extends View
{

на


class FeedbackView extends View
{
$response = null;
$reCaptcha = new \ReCaptcha\ReCaptcha($this->settings->secret_code);

Разве не так?
Подскажите пожалуйста, кто разобрался..

У все решение давно прекрасно работает. Попробуйте эту инструкцию, она более подходит для новичков.

Также советую все таки ставить 3 версию, у меня на проектах 2 уже пропускает некоторый спам.

Ссылка на сообщение
Поделиться на другие сайты

Кому интересно то вот решение по интеграции reCaptcha v3.
В любую форму добавляем

<input type="hidden" name="recaptcha_response">


Добавляем в .tpl

{literal}
<style>.grecaptcha-badge {visibility: hidden;}</style>
<script src="https://www.google.com/recaptcha/api.js?render=__PUBLIC_KEY__"></script>
<script>
    grecaptcha.ready(function() {
        grecaptcha.execute('__PUBLIC_KEY__', {action: 'submit'}).then(function(token) {
            grecaptcha.value = token;
            //объект формы
            $("form.ajax_form").find("input[name='recaptcha_response']").val(token);
        });
    });
</script>
{/literal}

А это в любом View где надо проверять:

function google_captcha()
{
    if(isset($_POST['recaptcha_response']))
    {
        $recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
        $recaptcha_secret = "__SECRET_KEY__";
        $recaptcha_response = $_POST['recaptcha_response'];
        $recaptcha = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
        $recaptcha = json_decode($recaptcha);
        //проверка на очки
        if(isset($recaptcha->score) && $recaptcha->score >= 0.5)
            return true;
    }
    return false;
}

Ну и вызов google_captcha() для проверки.

__PUBLIC_KEY__ и __SECRET_KEY__ вводите тот что вам гугл выдал.

Изменено пользователем a13x
Ссылка на сообщение
Поделиться на другие сайты
  • 5 месяцев спустя...
1 час назад, Axotn1k сказал:

Кто может написать подбробно как настроить reCaptcha v3 на сайте ?

Тут где то решение было, вы про инвизибл капчу?

Ссылка на сообщение
Поделиться на другие сайты
В 04.07.2021 в 18:15, Kami сказал:

Тут где то решение было, вы про инвизибл капчу?

Я о том как reCaptcha v3 настроить. 2я версия не справляеться, спам так и прет

Ссылка на сообщение
Поделиться на другие сайты
  • 3 месяца спустя...
В 12.01.2021 в 21:53, a13x сказал:

Кому интересно то вот решение по интеграции reCaptcha v3.
В любую форму добавляем


<input type="hidden" name="recaptcha_response">


Добавляем в .tpl


{literal}
<style>.grecaptcha-badge {visibility: hidden;}</style>
<script src="https://www.google.com/recaptcha/api.js?render=__PUBLIC_KEY__"></script>
<script>
    grecaptcha.ready(function() {
        grecaptcha.execute('__PUBLIC_KEY__', {action: 'submit'}).then(function(token) {
            grecaptcha.value = token;
            //объект формы
            $("form.ajax_form").find("input[name='recaptcha_response']").val(token);
        });
    });
</script>
{/literal}

А это в любом View где надо проверять:


function google_captcha()
{
    if(isset($_POST['recaptcha_response']))
    {
        $recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
        $recaptcha_secret = "__SECRET_KEY__";
        $recaptcha_response = $_POST['recaptcha_response'];
        $recaptcha = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
        $recaptcha = json_decode($recaptcha);
        //проверка на очки
        if(isset($recaptcha->score) && $recaptcha->score >= 0.5)
            return true;
    }
    return false;
}

Ну и вызов google_captcha() для проверки.

__PUBLIC_KEY__ и __SECRET_KEY__ вводите тот что вам гугл выдал.

Привет! Расскажи подробнее пожалуйста...

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...