Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 26.04.2010
Сообщений: 134

Проблема с ответом от сервера Google для recaptcha

23.05.2019, 23:34. Показов 2472. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

Прошу помощи! Сколько ни разбирался..не получается решить проблемы с работой капчи.

Есть хостинг в стиле vasya.ho.ua (реальный не такой но вроде этого)

Для него создал капчу на своем гугл аккаунте. При ее создании указал адрес моего сайта vasya.ho.ua.

допустим есть страница по адресу

vasya.ho.ua/example/tt.index.html

если не ошибаюсь для капчи этот адрес все равно подходит т.к. при создании я указывал vasya.ho.ua
создаю html файл по минимуму с содержимым:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>
 
        <form action="cap_s.php" method="POST">
            <div class="g-recaptcha" data-sitekey="6LcYBaQUAAAAAAofjVGckUOAoqDeJ0n4B0mgEGly"></div>
            <br/>
            <input type="submit" value="Submit">
        </form>
        <!--<script src='https://www.google.com/recaptcha/api.js?onload=reCaptchaOnLoadCallback&render=explicit'></script>-->
</body>
</html>
в том же каталоге создаю cap_s.php
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
 
if (isset($_POST['g-recaptcha-response'])) $captcha_response = $_POST['g-recaptcha-response'];
else die('На форме нет капчи! Обратитесь к администратору!');
 
$url = 'https://www.google.com/recaptcha/api/siteverify';
 
$params = [
    'secret' => 'тут секретный ключ от гугл',
    'response' => $captcha_response,
    'remoteip' => $_SERVER['REMOTE_ADDR']
];
echo "параметры передаваемые: <br>";
print_r($params);
print_r("<br>");
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
$response = curl_exec($ch);
if(!empty($response))
{
    echo "not empty response";
    $decoded_response = json_decode($response);
}
 
$success = false;
 
if ($decoded_response && $decoded_response->success)
{
    echo "decoded_response && decoded_response->success <br>";
    $success = $decoded_response->success;
    echo "success = <br>";
    print_r($success);
 
}
    else{
        echo "<br>не попали на успешную проверку<br>";
        }
 
echo $result;
    echo "результат";
 
$result = $success ? 'Капча пройдена успешно!' : ' Неверная капча!';
echo $result;
?>
в итоге командой
PHP
1
print_r($params);
получаю что то вроде :

параметры передаваемые:
PHP
1
Array ( [secret] => 6LcYBaQUAAAAAJiypEGSwMZNkb9u25aqiip4xdFG [response] => 03AOLTBLQQzjbGOc8V0wRBjuouKZ76tWa4F549ZPHtHsizNsym5cXU6q4V-iHR-lWKHSAJB86As4HiJRQjJfDSWkcI6CQ6_lBBIvdPcu8nmxEQ0RhUfSiAXOXrmhB4NEFwZ-sq6XHSquqUKuIppxTartZ1OiNLSOeXQ50maErzMeMw7yaG6k0XFANo4-I8MNG61CXhpTss06xSk1seBe9Gwj6aWweu_xMTfXlfPBJIg0xhC45jxOabuMeemc1BFkIIpv1w4pVz927dHiwTlQF5ZPMQ3x_WiuvrhHbYf16FmFI9YEiRtBPKF5BAM7hDH19DP58P8C-gKPru [remoteip] => 91.234.79.215 )
не попали на успешную проверку
результат Неверная капча!


Я находил несколько готовых примеров в инете аналогичных этому. И во всех случаях получается ответ от капчи еще есть..а вот от сервера гугл я не получаю успешного подтверждения..

Кто сталкивался с такой проблемой? Прошу помощи! Помогите пожалуйста!!! уже неделю мучаюсь и не смог решить эту проблему

Заранее спасибо

Добавлено через 55 минут
подумалось..можно конечно использовать половинчатое решение. т..е если response не пустой - считает что проверка прошла..но как понимаю это не совсем хорошо и правильно..

Добавлено через 1 час 18 минут
попробовал другой вариант реализации:
из html:

HTML5
1
2
3
4
5
        <form action="testc.php" method="post">
            <input type="text" name="login">
            <div class="g-recaptcha" data-sitekey="ключ сайта"></div>
            <input type="submit" name="enter" value="отправить">
        </form>
testc.php
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
 
if($_POST['enter']){
//var_dump($_POST);
    if(!$_POST['g-recaptcha-response'])
        exit("не заполнена каптча!");
    else
    {   echo "ответ капчи:<br>";
        var_dump($_POST['g-recaptcha-response']);
    }
 
    $url = 'https://www.google.com/recaptcha/api/siteverify';
 
    $key = 'секретный ключ';
    $query = $url.'?secret='.$key.'&response='.$_POST['g-recaptcha-response'].'&remoteip='.$_SERVER['REMOTE_ADDR'];
 
    $data = json_decode(file_get_contents($query));
    echo "<br><br>"."data=<br>";
 
    var_dump($data);
 
    if ( $data->success == false)
        echo('Капча введена неверно');
 
    echo("Логин: $_POST[login]");
 
}
?>
* - ключи вводил гуглловские. в итоге в $data приходит NULL..
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.05.2019, 23:34
Ответы с готовыми решениями:

ReCAPTCHA внедрение. Как подключить reCAPTCHA от Google
Здравствуйте! Нашел интересный обработчик формы обратной связи, переписал. Работало нормально, но в один момент решил я установить...

Google recaptcha в laravel
установил капчу https://github.com/thinhbuzz/laravel-google-captcha но такая ошибка Class captcha does not exist (View:...

Callback от Google reCAPTCHA 2
Доброго дня уважаемые форумчане. Столкнулся с такой проблемой, а именно - не всегда загружается капча от Google. Рендерю в блок div ее...

1
2 / 2 / 0
Регистрация: 26.04.2010
Сообщений: 134
27.05.2019, 22:15  [ТС]
Ребята! А как получить данные с google recaptcha в какую либо переменную с расчета что капч на странице несколько как и форм. Мне нужно с каждого SUBMIT из 4-х форм получать данные response.. нашел на гугле пример. Там на action формы выдается состояние response..но куда либо эти данные передать не получается. тем более action у меня предполагает данные в php-файл отправить..

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<html>
<head>
    <title>reCAPTCHA demo: Explicit render for multiple widgets</title>
    <script type="text/javascript">
 
        var widgetId1, widgetId2,widgetId3,widgetId4;
 
        var onloadCallback = function() {
            widgetId1 = grecaptcha.render(document.getElementById('captcha1'), {
                'sitekey' : '6LcYBaQUAAAAAAofjVGckUOAoqDeJ0n4B0mgEGly'
            });
 
            widgetId2 = grecaptcha.render(document.getElementById('captcha2'), {
                'sitekey' : '6LcGvKUUAAAAALHpuhX7jfotfQ0Tf8OdjrKo53_o'
            });
 
            widgetId3 = grecaptcha.render(document.getElementById('captcha3'), {
                'sitekey' : '6LcMvKUUAAAAAPM0ywfl8lNis_3Mia5qkqe2anW6'
            });
 
            widgetId4 = grecaptcha.render(document.getElementById('captcha4'), {
                'sitekey' : '6LcPvKUUAAAAAO5tOrQ0EctAuatWzdTNk5D2a84A'
            });
        };
 
        var el = grecaptcha;
        alert(el);
 
    </script>
</head>
<body>
 
        <form action="">
            <div id="captcha1"></div>
            <br>
            <input type="submit" value="getResponse"  onclick="javascript:el = grecaptcha.getResponse(widgetId1);">
        </form>
        <br>
 
       <br>
 
        <form action="javascript:alert(grecaptcha.getResponse(widgetId2));">
            <div id="captcha2"></div>
            <br>
            <input type="submit" value="getResponse" >
        </form>
        <br>
 
        <form action="javascript:alert(grecaptcha.getResponse(widgetId3));">
            <div id="captcha3"></div>
            <br>
            <input type="submit" value="getResponse"  >
        </form>
        <br>
 
        <form action="javascript:alert(grecaptcha.getResponse(widgetId4));">
 
            <div id="captcha4"></div>
            <br>
            <input type="submit" value="getResponse">
        </form>
 
        <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit"
                async defer>
        </script>
</body>
</html>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.05.2019, 22:15
Помогаю со студенческими работами здесь

Google recaptcha и laravel 5
Доброго времени суток! я попытался добавить на свой сайт каптчу по этому туториалу ТЫЦ все добавил как написано но $response...

Captcha - reCAPTCHA от Google
Доброго всем дня. Такой вопрос, довольно странный, раньше не сталкивался. Имеется сайт на Joomla 2.5 по умолчанию там должен...

Проблема с json ответом
для начала - да, это майнкрафт делаю запрос на api.vime.world/user/name/xtrafrancyz получаю ответ json со статистикой, но в массиве ...

Google recaptcha и safari на iphone5
Всем привет. Сталкивался ли кто с такой проблемой. Google recaptcha (я не робот V2) на iphone 5 safari при щелчке по квадратику что...

Google reCAPTCHA for Adobe Muse site
Добрый день/вечер. Нужна помощь в не простом для меня деле. Пишется сайт на Adobe Muse https://www.sergiykravchuk.com/contact.html, на нем...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru