reCAPTCHA for SMF

Автор janis79, 28 сентября 2015, 02:46:22

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

janis79

Привет, друзья! Давно не виделись! За последние дни спам просто задолбал, регается по 50 ботов в день. Поставил одобрение регистрации по email, но тоже жутко напрягает. Увидел самый популярный мод против спама - reCAPTCHA for SMF. Устанавливал по инструкции, но в настройках не работает ссылка на регистрацию api-ключей для мода. Поэтому зашел на сайт    https://www.google.com/recaptcha отдельно, добавил туда свой сайт, и потом там дается 2 ключа, один для вставки в html-код сайта и другой секретный. Я правильно понял, что это и есть те два самых ключа, которые требует мод (reCAPTCHA Public Key и reCAPTCHA Private Key)? Подскажите плиз, кто юзал данный чудо-мод :)
Автор блога http://zarabotatj-v-internete.ru 8)

Colonizator

Проблема с модом reCAPTCHA

1) Пишем сообщение, допустим не вводим капчу (забыл, не увидел и т.д.) - жмем кнопку отправить, идет перенаправление на страницу с ошибкой "Неверно ввели символы с картинки" (код ошибки error_wrong_verification_code)

2) Жмем назад, чтобы пройти визуальную проверку.

3) Проходим проверку reCaptcha

4) Жмем снова кнопку отправить, получаем ошибку "Вы уже отправили это сообщение! Возможно, вы случайно нажали дважды или попытались обновить страницу."


Решение:
Найти в файле ./Sources/Subs-Editor.php:
if(!empty($modSettings['recaptcha_enabled']) && ($modSettings['recaptcha_enabled'] == 1 && !empty($modSettings['recaptcha_public_key']) && !empty($modSettings['recaptcha_private_key'])))
{
if(!empty($_POST["recaptcha_response_field"]) && !empty($_POST["recaptcha_challenge_field"])) //Check the input if this exists, if it doesn't, then the user didn't fill it out.
{
require_once("$sourcedir/recaptchalib.php");

$resp = recaptcha_check_answer($modSettings['recaptcha_private_key'], $_SERVER['REMOTE_ADDR'], $_REQUEST['recaptcha_challenge_field'], $_REQUEST['recaptcha_response_field']);

if (!$resp->is_valid)
fatal_lang_error('error_wrong_verification_code', false);
}
else
fatal_lang_error('error_wrong_verification_code', false);
}

Заменить на:
if(!empty($modSettings['recaptcha_enabled']) && ($modSettings['recaptcha_enabled'] == 1 && !empty($modSettings['recaptcha_public_key']) && !empty($modSettings['recaptcha_private_key'])))
{
if(!empty($_POST["recaptcha_response_field"]) && !empty($_POST["recaptcha_challenge_field"])) //Check the input if this exists, if it doesn't, then the user didn't fill it out.
{
require_once("$sourcedir/recaptchalib.php");

$resp = recaptcha_check_answer($modSettings['recaptcha_private_key'], $_SERVER['REMOTE_ADDR'], $_REQUEST['recaptcha_challenge_field'], $_REQUEST['recaptcha_response_field']);

if (!$resp->is_valid)
$verification_errors[] = 'wrong_verification_code'; // MonoTiz // fatal_lang_error('error_wrong_verification_code', false);
}
else
$verification_errors[] = 'wrong_verification_code'; // MonoTiz // fatal_lang_error('error_wrong_verification_code', false);
}

P.S. Решение найдено в офф. теме поддержки модуля - здесь
Не создавал новую тему, т.к. через поиск на форуме по запросу reCAPTCHA - эта тема первая.

disaster

Доброго времени суток, коллеги!
С недавних пор не работает регистрация из-за reCaptcha: Набранные символы не совпадают с символами на изображении.

Кто-то решил эту проблем и может поделиться "лекарством"?
Всем спасибо!

digger®

Цитата: disaster от 17 марта 2017, 22:10:23Доброго времени суток, коллеги!
С недавних пор не работает регистрация из-за reCaptcha: Набранные символы не совпадают с символами на изображении.
Ставил на днях на два форума, работает без проблем.

disaster

Цитата: digger® от 17 марта 2017, 22:14:49Ставил на днях на два форума, работает без проблем.
Тоже ставил, работало. С недавних пор вылезает ошибка при регистрации.
При этом keyCaptcha работает нормально.

kak2z

проверил только что у себя.. работает.. они там ввели недавно невидимую капчу.. может изза этого временные глюки были какие то.
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)


Dark Wizard

Цитата: disaster от 17 марта 2017, 22:10:23С недавних пор не работает регистрация из-за reCaptcha: Набранные символы не совпадают с символами на изображении.

Большое спасибо Digger за оперативную помощь! Процитирую решение:

"Там другое выдает - неверный ответ на вопрос. Включено два вопроса, а показывает один, когда рекапча включена.
Методом научного тыка выяснено, что если поставить "Сложность изображения визуальной проверки: запретить", включить рекапчу и поставить количество вопросов 2 - то выводит один вопрос и невозможно зарегистрироваться из-за этого. Мораль - не нужно выключать сложность стандартной капчи при активации рекапчи."


Juanito

У меня вот эта капча почему-то упорно отказывается работать на браузере Microsoft Edge. С чем может быть связана проблема? Просто галочку жму и бесконечная загрузка. На других браузерах нормально.

valdnieks

Я знаю, что некоторые смайлики не отображаются только в гугл хром. И не отвечают, многие на сторонних ресурсах обсуждают, не отвечают, да и ладно.
Registered Linux user #325316
Последняя версия SMF: SMF 2.0.15
Версия GD: bundled (2.1.0 compatible)
Версия MySQL: 5.5.23
PHP: 5.6.30
Версия Web сервера: Apache/2.4.25 (Win64) PHP/5.6.30

Yarik

Цитата: Juanito от 09 июля 2018, 11:49:14У меня вот эта капча почему-то упорно отказывается работать на браузере Microsoft Edge. С чем может быть связана проблема? Просто галочку жму и бесконечная загрузка. На других браузерах нормально.
Скорее всего сам браузер.У меня аналогично.

Juanito

Цитата: S.T.A.L.K.E.R. от 09 июля 2018, 17:53:44Скорее всего сам браузер.У меня аналогично.
Вот напрягает то, что когда ставлю форум на технический домен с латинским адресом - всё работает. На моём собственно форуме кириллическом - капча не работает в Edge. Ты ствил эту капчу на свои форумы, как у тебя с ней?

Yarik

Цитата: Juanito от 09 июля 2018, 19:36:27Вот напрягает то, что когда ставлю форум на технический домен с латинским адресом - всё работает. На моём собственно форуме кириллическом - капча не работает в Edge. Ты ствил эту капчу на свои форумы, как у тебя с ней?
Ставил,нормально работало.Домен не кириллический.
Сейчас платная защита от спама.

Juanito

Цитата: Colonizator от 22 марта 2016, 12:39:22Проблема с модом reCAPTCHA

1) Пишем сообщение, допустим не вводим капчу (забыл, не увидел и т.д.) - жмем кнопку отправить, идет перенаправление на страницу с ошибкой "Неверно ввели символы с картинки" (код ошибки error_wrong_verification_code)

2) Жмем назад, чтобы пройти визуальную проверку.

3) Проходим проверку reCaptcha

4) Жмем снова кнопку отправить, получаем ошибку "Вы уже отправили это сообщение! Возможно, вы случайно нажали дважды или попытались обновить страницу."


Решение:
Найти в файле ./Sources/Subs-Editor.php:
if(!empty($modSettings['recaptcha_enabled']) && ($modSettings['recaptcha_enabled'] == 1 && !empty($modSettings['recaptcha_public_key']) && !empty($modSettings['recaptcha_private_key'])))
 {
 if(!empty($_POST["recaptcha_response_field"]) && !empty($_POST["recaptcha_challenge_field"])) //Check the input if this exists, if it doesn't, then the user didn't fill it out.
 {
 require_once("$sourcedir/recaptchalib.php");

 $resp = recaptcha_check_answer($modSettings['recaptcha_private_key'], $_SERVER['REMOTE_ADDR'], $_REQUEST['recaptcha_challenge_field'], $_REQUEST['recaptcha_response_field']);

 if (!$resp->is_valid)
 fatal_lang_error('error_wrong_verification_code', false);
 }
 else
 fatal_lang_error('error_wrong_verification_code', false);
 }

Заменить на:
if(!empty($modSettings['recaptcha_enabled']) && ($modSettings['recaptcha_enabled'] == 1 && !empty($modSettings['recaptcha_public_key']) && !empty($modSettings['recaptcha_private_key'])))
 {
 if(!empty($_POST["recaptcha_response_field"]) && !empty($_POST["recaptcha_challenge_field"])) //Check the input if this exists, if it doesn't, then the user didn't fill it out.
 {
 require_once("$sourcedir/recaptchalib.php");

 $resp = recaptcha_check_answer($modSettings['recaptcha_private_key'], $_SERVER['REMOTE_ADDR'], $_REQUEST['recaptcha_challenge_field'], $_REQUEST['recaptcha_response_field']);

 if (!$resp->is_valid)
 $verification_errors[] = 'wrong_verification_code'; // MonoTiz // fatal_lang_error('error_wrong_verification_code', false);
 }
 else
 $verification_errors[] = 'wrong_verification_code'; // MonoTiz // fatal_lang_error('error_wrong_verification_code', false);
 }

P.S. Решение найдено в офф. теме поддержки модуля - здесь
Не создавал новую тему, т.к. через поиск на форуме по запросу reCAPTCHA - эта тема первая.
Обнаружил сейчас точно такую же ошику у себя. Только вот код там уже другой стал.

А ещё, если не нажать капчу и отправить сообщение, то сверху вот такую ошибку выдаёт.

jazzl0ver

Наткнулся на такую проблему: если задано не только предлагать вводить рекапчу, но и ответы на проверочные вопросы, то:
- при выключенной настройке "Сложность изображения визуальной проверки" вопросы вообще не выводятся
- при включенной - показывается на одну строку больше, чем сконфигурировано вопросов

Фикс - ниже:
--- GenericControls.template.php.orig   2022-01-25 14:43:05.000000000 +0300
+++ GenericControls.template.php        2022-01-25 14:35:51.000000000 +0300
@@ -340,7 +340,7 @@
                else
                {
                        // Where in the question array is this question?
-                       $qIndex = $verify_context['show_visual'] ? $i - 1 : $i;
+                       $qIndex = ($verify_context['show_visual'] || count($verify_context['questions']) > 0) ? $i - 1 : $i;

                        echo '
                                <div class="smalltext">