Recaptcha error missing input response перевод

reCAPTCHA — коды ошибок: ‘missing-input-response’, ‘missing-input-secret’ при проверке ответа пользователя (отсутствуют детали в POST) Как устранить ошибку Captcha в браузере Chrome Я устанавливаю невидимую reCAPTCHA в своем веб-приложении и не могу проверить ответ пользователя. (хотя я передаю правильные параметры POST) Я программно вызываю вызов, вызывая grecaptcha.execute(); на стороне клиента. И отправка формы после ( […]

Содержание

  1. reCAPTCHA — коды ошибок: ‘missing-input-response’, ‘missing-input-secret’ при проверке ответа пользователя (отсутствуют детали в POST)
  2. Как устранить ошибку Captcha в браузере Chrome
  3. ReCAPTCHA — коды ошибок: ‘missing-input-response’, ‘missing-input-secret’ при проверке ответа пользователя (отсутствуют детали в POST)
  4. Ошибка ReCAPTCHA: как избежать этой проблемы при просмотре
  5. Что такое reCAPTCHA
  6. Почему в браузере не работает reCAPTCHA
  7. Мы просматриваем через VPN или прокси
  8. Браузер устарел
  9. Вредоносное ПО в системе
  10. Мы подключены с подозрительного IP
  11. Что делать для устранения неполадок с reCAPTCHA
  12. Держите оборудование в безопасности
  13. Обновите систему и браузер
  14. Контроль использования VPN и прокси
  15. Перезагрузите IP
  16. Перезагрузите роутер
  17. Что не так я делаю при проверке результата reCaptcha?

reCAPTCHA — коды ошибок: ‘missing-input-response’, ‘missing-input-secret’ при проверке ответа пользователя (отсутствуют детали в POST)

Как устранить ошибку Captcha в браузере Chrome

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

Я программно вызываю вызов, вызывая grecaptcha.execute(); на стороне клиента. И отправка формы после ( registrationForm.submit(); ) с помощью обратного вызова recaptcha:

Теперь после прочтения «Проверка ответа пользователя» документации, я решил, что токен ответа передается как параметр POST в g-recaptcha-response :

Для веб-пользователей вы можете получить токен ответа одним из трех способов:

  • g-recaptcha-response параметр POST, когда пользователь отправляет форму на вашем сайте
  • .

Поэтому я использую Fetch для создания запроса POST на стороне сервера к конечной точке проверки с необходимыми данными тела:

Но я получаю такой ответ:

Хотя я передаю ответ и секрет как данные JSON в теле сообщения POST.

Я делаю что-то неправильно? С уважением.

Проведя небольшое исследование и покопавшись на форумах Google, посвященных reCaptcha, кажется, что эта конечная точка принимает только тип контента по умолчанию; application/x-www-form-urlencoded .

Это означает, что вам следует не используйте JSON для отправки токена ответа и ключа сайта. Вместо этого отправьте значение как application/x-www-form-urlencoded определено:

Формы, отправленные с этим типом контента, должны быть закодированы следующим образом:

  1. Имена и значения элементов управления экранированы. Пробелы заменяются на ‘+’, а затем зарезервированные символы экранируются, как описано в [RFC1738], раздел 2.2: Неалфавитно-цифровые символы заменяются ‘% HH’, знаком процента и двумя шестнадцатеричными цифрами, представляющими код ASCII персонаж. Разрывы строк представлены парами «CR LF» (т. Е. «% 0D% 0A»).
  2. Имена / значения элементов управления перечислены в порядке их появления в документе. Имя отделяется от значения знаком ‘=’, а пары имя / значение отделяются друг от друга знаком ‘&’.

Следовательно, у вас есть два способа сделать это: либо передать параметры POST через URL-адрес (строки запроса), либо отправить их как запрос POST:

или добавив данные в тело вручную, например:

  • 1 Спасибо! Решение с параметрами POST сработало для меня.

Источник

ReCAPTCHA — коды ошибок: ‘missing-input-response’, ‘missing-input-secret’ при проверке ответа пользователя (отсутствуют детали в POST)

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

Я программно вызываю вызов, вызывая grecaptcha.execute(); на стороне клиента. И после отправки формы ( registrationForm.submit(); ) с помощью обратного вызова recaptcha:

Теперь, после прочтения документации «Проверка ответа пользователя», я понял, что токен ответа передается как параметр POST в g-recaptcha-response :

For web users, you can get the user’s response token in one of three ways:

  • g-recaptcha-response POST parameter when the user submits the form on your site
  • .

Поэтому я использую Принести для создания запроса POST на стороне сервера к конечная точка проверки с необходимыми данными тела:

Но я получаю такой ответ:

Хотя я передаю ответ и секрет как данные JSON в теле сообщения POST.

Я делаю что-то неправильно? С Уважением.

Проведя небольшое исследование и покопавшись в reCaptcha форумы Google, кажется, что эта конечная точка принимает только тип контента по умолчанию; application/x-www-form-urlencoded .

Это означает, что вы должны нет использовать JSON для отправки токена ответа и ключа сайта. Вместо этого отправьте значение, как определено application/x-www-form-urlencoded :

Forms submitted with this content type must be encoded as follows:

  1. Control names and values are escaped. Space characters are replaced by ‘+’, and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by ‘%HH’, a percent sign and two hexadecimal digits representing the ASCII code of the character. Line breaks are represented as «CR LF» pairs (i.e., ‘%0D%0A’).
  2. The control names/values are listed in the order they appear in the document. The name is separated from the value by ‘=’ and name/value pairs are separated from each other by ‘&’.

Таким образом, у вас есть два способа сделать это: либо передать параметры POST через URL-адрес (строки запроса), либо отправить их как запрос POST:

или добавив данные в тело вручную, например:

Официальную документацию Google можно найти здесь:
Рекапча — проверка ответа пользователя.

Спасибо! Решение с параметрами POST сработало для меня.

Превосходно. Это сработало и для меня. Если вы используете аксиомы, это очень полезно: github.com/axios/…

Идеально. добавление секрета и ответа на проверочный URL сработало. Спасибо

Даже если предположить, что Google понимает такое поведение (?!), В Документация Google нет информации, даже сейчас.

В документации показано, что запрос API принимает в качестве параметров POST. Однако не указан только тип контента, который, как мы можем определить, является application/x-www-form-urlencoded . Я добавил ссылку на официальную документацию Google для запроса на проверку, чтобы будущие пользователи могли быть проинформированы о любых изменениях. (Спасибо!)

Источник

Ошибка ReCAPTCHA: как избежать этой проблемы при просмотре

Когда мы просматриваем Интернет, мы можем столкнуться с определенными проблемами, которые не позволяют нам загружать веб-страницы или получать доступ к определенным службам. Эти ошибки обычно исходят из браузера. Возможно, неправильная конфигурация, проблема с программным обеспечением, вирус . В этом случае мы поговорим о том, как решить проблему сбоя рекапчи не работает в Chrome и другие браузеры. Мы собираемся поговорить о том, почему это могло произойти, и что мы можем сделать, чтобы решить эту проблему и научиться ориентироваться в обычном режиме.

Что такое reCAPTCHA

Во многих случаях при доступе к веб-странице появляется сообщение убедитесь, что мы настоящий пользователь а не бот. Это позволяет предлагать правильные услуги без ущерба для самого веб-сайта или любого пользователя.

В основном это то, что делает reCAPTCHA. Это бесплатная служба Google, которая проверяет, что вход на страницу или платформу осуществляется человеком, а не ботом. Он помогает этим сайтам избежать ввода различных автоматизированных инструментов, которые могут даже привести к рассылка спама и угроз .

Использование пользователями очень простое. Интернет-пользователь входит на страницу, и появляется поле, в котором он должен отметить, что он не бот, и тем самым подтвердить, что он человек. Это похоже на другие варианты, которые мы видим, в которых вы должны отметить серию цифр, изображений и т. Д. Однако в этом случае процесс выполняется быстрее и проще.

Однако бывают случаи, когда появляется ошибка и reCAPTCHA не работает в Chrome или любом браузере. Появится сообщение о том, что проверка не удалась. Это помешает нам открыть веб-сайт или войти в систему.

Почему в браузере не работает reCAPTCHA

Важно знать основные причины, по которым reCAPTCHA вылетает в браузере. Нет конкретной причины, но есть ряд возможностей, которые необходимо принять во внимание, а затем решить эту проблему для правильной навигации.

Мы просматриваем через VPN или прокси

Иметь VPN или просматривая полномочие очень распространено. В нашем распоряжении много таких услуг. Они позволяют нам избегать возможных географических блоков, которые могут существовать, а также сохранять личную информацию, если мы подключаемся из общедоступной сети.

Однако это может быть причиной того, что reCAPTCHA не работает в браузере. Это может привести к конфликту с сетью и лишить нас возможности проверить, действительно ли мы являемся законным пользователем, а не ботом.

Браузер устарел

Эта ошибка возникает в браузере, поэтому одна из причин, которая также может вызывать эту проблему, заключается в том, что он не обновлен. Имея устаревшее программное обеспечение может быть источником множества ошибок при подключении к сети и использовании наших устройств.

Вредоносное ПО в системе

Конечно, может случиться так, что у нас есть какое-то вредоносное ПО. Особенно это может быть рекламное ПО в браузере, хотя это может быть троян, вирус или любой другой угроза в системе .

Мы уже знаем, что хакеры используют множество стратегий, чтобы подвергнуть риску наши компьютеры. Многие атаки могут повлиять на правильное функционирование браузера и привести к сбоям, подобным тому, что мы описываем в этой статье.

Мы подключены с подозрительного IP

В таких случаях это очень частая причина. Веб-сайт интерпретирует, что мы подключены к подозрительный IP и считает, что мы можем быть ботом. Это может произойти, если мы просматриваем общедоступный Wi-Fi, например, где внутри много пользователей. Также в случае доступа к сети из VPN.

Что делать для устранения неполадок с reCAPTCHA

Мы увидели, каковы основные причины появления ошибки reCAPTCHA в браузере. Теперь мы собираемся объяснить некоторые проблемы, которые необходимо принять во внимание, чтобы это не превратилось в проблему и чтобы иметь возможность нормально перемещаться.

Держите оборудование в безопасности

Конечно, один из самых важных вопросов избежать сбоя reCAPTCHA и другие подобные сообщения, которые могут появиться в браузере, предназначены для обеспечения безопасности компьютера. Для этого мы можем использовать множество инструментов, доступных для всех типов операционных систем.

Мы можем использовать антивирус, а также брандмауэр и даже расширения для браузера. Все это поможет нам избежать проникновения вредоносных программ, которые могут повлиять на нас. Мы должны поддерживать безопасность на всех уровнях и, таким образом, уменьшать проблемы.

Обновите систему и браузер

Один момент, который мы не можем забыть, — это постоянно обновлять как систему, так и браузер. Во многих случаях появляются уязвимости и сбои, которые могут вызывать эти типы ошибок, а также служить шлюзом для хакеров.

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

Контроль использования VPN и прокси

Если мы собираемся перемещаться через VPN или прокси и замечаем, что это может создавать проблемы такого типа, мы должны контролировать использование. Мы можем взглянуть на конфигурацию, посмотреть, может ли это быть ошибка с сервера мы подключены и в конечном итоге пытаемся использовать другой сервис.

Перезагрузите IP

In Windows мы можем легко сбросить IP из командной строки. Для этого нам нужно перейти в Пуск, получить доступ к командной строке в режиме администратора и выполнить ipconfig / обновить . Это могло бы помочь исправить этот сбой, если это было причиной.

Перезагрузите роутер

Мы видели, что могут быть проблемы и с нашим IP. Но сам маршрутизатор мог неправильно обрабатывать запросы. Поэтому важный совет — перезагрузите устройство и посмотрите, устранит ли это неисправность. Теперь вам нужно сделать это правильно. Мы должны выключить роутер и позволить ему оставаться в таком состоянии не менее 30 секунд, прежде чем снова его включить.

Таким образом, это некоторые из основных проблем, которые мы должны учитывать, чтобы избежать проблемы reCAPTCHA в браузере. Мы рассмотрели основные причины возникновения подобных сбоев, а также несколько основных советов по их устранению.

Источник

Что не так я делаю при проверке результата reCaptcha?

Установил reCaptcha на сайт и подключил. Но при проверке результата в ответ приходит сообщение об ошибке: invalid-input-response.

Проверку выполняю так:

Переменная $cresp — ответ пользователя. Он передаётся в эту функцию для проверки прямо из скрипта-обработчика формы. С ответом всё вроде бы верно. Он имеет, к примеру, следующий вид:

В php.ini переменная post_max_size равна 999M. В чём может быть проблема?

  • Вопрос задан более трёх лет назад
  • 4593 просмотра

Простой 1 комментарий

у меня вот такой простецкий класс:

Давно в него не лазил, может что-то изменилось ,но судя по моему классу в ответе должен быть json , а не какая то мутная строка.
Если хочешь через Curl в ответе выше посмотри как сделано, там тоже Curl между прочим есть, и сокеты

$params = http_build_query(
array(
‘secret’ => $reCaptcha_privatekey,
‘response’ => $cresp,
‘remoteip’ => $_SERVER[‘REMOTE_ADDR’],
‘version’ => ‘php_1.1.1’,
),
»,
‘&’
);

$handle = curl_init($site_verify_url);
$options = array(
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $params,
CURLOPT_HTTPHEADER => array(
‘Content-Type: application/x-www-form-urlencoded’
),
CURLINFO_HEADER_OUT => false,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => true
);
curl_setopt_array($handle, $options);
$response = curl_exec($handle);
curl_close($handle);

Источник

Как устранить ошибку Captcha в браузере Chrome

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

Я программно вызываю вызов, вызывая grecaptcha.execute(); на стороне клиента. И отправка формы после (registrationForm.submit();) с помощью обратного вызова recaptcha:

 

Теперь после прочтения «Проверка ответа пользователя» документации, я решил, что токен ответа передается как параметр POST в g-recaptcha-response:

Для веб-пользователей вы можете получить токен ответа одним из трех способов:

  • g-recaptcha-response параметр POST, когда пользователь отправляет форму на вашем сайте

Поэтому я использую Fetch для создания запроса POST на стороне сервера к конечной точке проверки с необходимыми данными тела:

verify(req, res, next) { const VERIFY_URL = 'https://www.google.com/recaptcha/api/siteverify'; return fetch(VERIFY_URL, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ secret: process.env.RECAP_INVIS_SECRET_KEY, response: req.body['g-recaptcha-response'], }), }) .then(response => response.json()) .then(data => { res.locals.recaptcha = data; return next(); }); } 

Но я получаю такой ответ:

{успех: ложь, коды ошибок: [‘отсутствует-ввод-ответ’, ‘отсутствует-ввод-секрет’]}

Хотя я передаю ответ и секрет как данные JSON в теле сообщения POST.

Я делаю что-то неправильно? С уважением.

Проведя небольшое исследование и покопавшись на форумах Google, посвященных reCaptcha, кажется, что эта конечная точка принимает только тип контента по умолчанию; application/x-www-form-urlencoded.

Это означает, что вам следует не используйте JSON для отправки токена ответа и ключа сайта. Вместо этого отправьте значение как application/x-www-form-urlencoded определено:

Формы, отправленные с этим типом контента, должны быть закодированы следующим образом:

  1. Имена и значения элементов управления экранированы. Пробелы заменяются на ‘+’, а затем зарезервированные символы экранируются, как описано в [RFC1738], раздел 2.2: Неалфавитно-цифровые символы заменяются ‘% HH’, знаком процента и двумя шестнадцатеричными цифрами, представляющими код ASCII персонаж. Разрывы строк представлены парами «CR LF» (т. Е. «% 0D% 0A»).
  2. Имена / значения элементов управления перечислены в порядке их появления в документе. Имя отделяется от значения знаком ‘=’, а пары имя / значение отделяются друг от друга знаком ‘&’.

Следовательно, у вас есть два способа сделать это: либо передать параметры POST через URL-адрес (строки запроса), либо отправить их как запрос POST:

https://www.google.com/recaptcha/api/siteverify?secret=${SECRET_KEY}&response=${req.body['g-recaptcha-response']} 

или добавив данные в тело вручную, например:

verify(req, res, next) { const VERIFY_URL = 'https://www.google.com/recaptcha/api/siteverify'; return fetch(VERIFY_URL, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: `secret=${SECRET_KEY}&response=${req.body['g-recaptcha-response']}`, }) .then(response => response.json()) .then(data => { res.locals.recaptcha = data; return next(); }); } 
  • 1 Спасибо! Решение с параметрами POST сработало для меня.

Tweet

Share

Link

Plus

Send

Send

Pin

Содержание

  • Что такое reCAPTCHA
  • Почему в браузере не работает reCAPTCHA
    • Мы просматриваем через VPN или прокси
    • Браузер устарел
    • Вредоносное ПО в системе
    • Мы подключены с подозрительного IP
  • Что делать для устранения неполадок с reCAPTCHA
    • Держите оборудование в безопасности
    • Обновите систему и браузер
    • Контроль использования VPN и прокси
    • Перезагрузите IP
    • Перезагрузите роутер

Во многих случаях при доступе к веб-странице появляется сообщение убедитесь, что мы настоящий пользователь а не бот. Это позволяет предлагать правильные услуги без ущерба для самого веб-сайта или любого пользователя.

Ошибка ReCAPTCHA

В основном это то, что делает reCAPTCHA. Это бесплатная служба Google, которая проверяет, что вход на страницу или платформу осуществляется человеком, а не ботом. Он помогает этим сайтам избежать ввода различных автоматизированных инструментов, которые могут даже привести к рассылка спама и угроз .

Использование пользователями очень простое. Интернет-пользователь входит на страницу, и появляется поле, в котором он должен отметить, что он не бот, и тем самым подтвердить, что он человек. Это похоже на другие варианты, которые мы видим, в которых вы должны отметить серию цифр, изображений и т. Д. Однако в этом случае процесс выполняется быстрее и проще.

Однако бывают случаи, когда появляется ошибка и reCAPTCHA не работает в Chrome или любом браузере. Появится сообщение о том, что проверка не удалась. Это помешает нам открыть веб-сайт или войти в систему.

Почему в браузере не работает reCAPTCHA

Важно знать основные причины, по которым reCAPTCHA вылетает в браузере. Нет конкретной причины, но есть ряд возможностей, которые необходимо принять во внимание, а затем решить эту проблему для правильной навигации.

Мы просматриваем через VPN или прокси

Иметь VPN или просматривая полномочие очень распространено. В нашем распоряжении много таких услуг. Они позволяют нам избегать возможных географических блоков, которые могут существовать, а также сохранять личную информацию, если мы подключаемся из общедоступной сети.

Однако это может быть причиной того, что reCAPTCHA не работает в браузере. Это может привести к конфликту с сетью и лишить нас возможности проверить, действительно ли мы являемся законным пользователем, а не ботом.

Браузер устарел

Эта ошибка возникает в браузере, поэтому одна из причин, которая также может вызывать эту проблему, заключается в том, что он не обновлен. Имея устаревшее программное обеспечение может быть источником множества ошибок при подключении к сети и использовании наших устройств.

Вредоносное ПО в системе

Конечно, может случиться так, что у нас есть какое-то вредоносное ПО. Особенно это может быть рекламное ПО в браузере, хотя это может быть троян, вирус или любой другой угроза в системе .

Мы уже знаем, что хакеры используют множество стратегий, чтобы подвергнуть риску наши компьютеры. Многие атаки могут повлиять на правильное функционирование браузера и привести к сбоям, подобным тому, что мы описываем в этой статье.

Мы подключены с подозрительного IP

В таких случаях это очень частая причина. Веб-сайт интерпретирует, что мы подключены к подозрительный IP и считает, что мы можем быть ботом. Это может произойти, если мы просматриваем общедоступный Wi-Fi, например, где внутри много пользователей. Также в случае доступа к сети из VPN.

Что делать для устранения неполадок с reCAPTCHA

Мы увидели, каковы основные причины появления ошибки reCAPTCHA в браузере. Теперь мы собираемся объяснить некоторые проблемы, которые необходимо принять во внимание, чтобы это не превратилось в проблему и чтобы иметь возможность нормально перемещаться.

Держите оборудование в безопасности

Конечно, один из самых важных вопросов избежать сбоя reCAPTCHA и другие подобные сообщения, которые могут появиться в браузере, предназначены для обеспечения безопасности компьютера. Для этого мы можем использовать множество инструментов, доступных для всех типов операционных систем.

Мы можем использовать антивирус, а также брандмауэр и даже расширения для браузера. Все это поможет нам избежать проникновения вредоносных программ, которые могут повлиять на нас. Мы должны поддерживать безопасность на всех уровнях и, таким образом, уменьшать проблемы.

Обновите систему и браузер

Один момент, который мы не можем забыть, — это постоянно обновлять как систему, так и браузер. Во многих случаях появляются уязвимости и сбои, которые могут вызывать эти типы ошибок, а также служить шлюзом для хакеров.

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

Контроль использования VPN и прокси

Если мы собираемся перемещаться через VPN или прокси и замечаем, что это может создавать проблемы такого типа, мы должны контролировать использование. Мы можем взглянуть на конфигурацию, посмотреть, может ли это быть ошибка с сервера мы подключены и в конечном итоге пытаемся использовать другой сервис.

Перезагрузите IP

In Windows мы можем легко сбросить IP из командной строки. Для этого нам нужно перейти в Пуск, получить доступ к командной строке в режиме администратора и выполнить ipconfig / обновить . Это могло бы помочь исправить этот сбой, если это было причиной.

Reiniciar la IP

Перезагрузите роутер

Мы видели, что могут быть проблемы и с нашим IP. Но сам маршрутизатор мог неправильно обрабатывать запросы. Поэтому важный совет — перезагрузите устройство и посмотрите, устранит ли это неисправность. Теперь вам нужно сделать это правильно. Мы должны выключить роутер и позволить ему оставаться в таком состоянии не менее 30 секунд, прежде чем снова его включить.

Таким образом, это некоторые из основных проблем, которые мы должны учитывать, чтобы избежать проблемы reCAPTCHA в браузере. Мы рассмотрели основные причины возникновения подобных сбоев, а также несколько основных советов по их устранению.

Суть вопроса в том, что API Google возвращает error: 0 missing-input-response после отправки формы.
Читал инфу по интеграции здесь: https://developers.google.com/recaptcha/docs/v3
Но так ничего и не понял

HTML

<div class="modal fade" id="contactForm" tabindex="-1" role="dialog" aria-labelledby="contactFormLabel" aria-hidden="true">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                        <h4 class="modal-title" id="contactFormLabel">Связаться со мной</h4>
                    </div>
                    <div class="modal-body">
                        <form method="POST" action="../send.php" id="send-form" class="form-horizontal" role="form">
                            <div class="form-group">
                                <label for="inputName" class="col-sm-2 control-label">Имя</label>
                                <div class="col-sm-10">
                                    <input type="text" name="name" class="form-control" id="inputName" placeholder="Имя" required>
                                </div>
                            </div>

                            <div class="form-group">
                                <label for="inputEmail" class="col-sm-2 control-label">Email</label>
                                <div class="col-sm-10">
                                    <input type="email" name="email" class="form-control" id="inputEmail" placeholder="Email" required>
                                </div>
                            </div>

                            <div class="form-group">
                                <label for="inputTel" class="col-sm-2 control-label">Телефон</label>
                                <div class="col-sm-10">
                                    <input type="tel" name="tel" class="form-control" id="inputTel" placeholder="Телефон" required>
                                </div>
                            </div>

                            <div class="form-group">
                                <label for="inputProblem" class="col-sm-2 control-label">Опишите вашу задачу</label>
                                <div class="col-sm-10">
                                    <textarea name="problem" class="form-control" id="inputProblem" cols="30" rows="10" placeholder="Опишите вашу задачу" required></textarea>
                                </div>
                            </div>
                        </form>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
                        <button type="submit" class="btn btn-primary" id="send-form-submit" form="send-form" data-loading-text="Отправка...">Отправить</button>
                    </div>
                </div>
                <!-- /.modal-content -->
            </div>
            <!-- /.modal-dialog -->
        </div>

JS/JQUERY

//Send Form
    $('#send-form').submit(function (e) {
        e.preventDefault();
        var form = $(this);
        var btn = $('#send-form-submit');
        btn.button('loading');
        var m_action = form.attr('action');
        var name = form.find('#inputName').val();
        var email = form.find('#inputEmail').val();
        var tel = form.find('#inputTel').val();
        var problem = form.find('#inputProblem').val();
        var from = 'не удалось определить.';

        grecaptcha.ready(function () {
            grecaptcha.execute('мой публичный ключ', {
                    action: 'sendform'
                })
                .then(function (token) {
                    if (document.referrer != "") {
                        from = document.referrer;
                    }
                    $.post(
                        m_action, {
                            name: name,
                            email: email,
                            tel: tel,
                            problem: problem,
                            from: from,
                            token: token
                        },
                        function (data) {
                            alertMessage(data);
                            btn.button('reset');
                        }
                    );
                });
        });
    });

PHP

<?php
if ($_POST['name']) {
    $url_google_api = 'https://www.google.com/recaptcha/api/siteverify';
    $secret = 'мой секретный ключ';
    // Recaptcha V3
    $query = $url_google_api . '?secret=' . $secret . '&response=' . $POST['token'] . '&remoteip=' . $_SERVER['REMOTE_ADDR'];
    $data = json_decode(file_get_contents($query));
    $success = 'false';
    if ($data->success) {
        $success = 'true';
    }

    $message = "Имя пользователя: " . htmlspecialchars($_POST['name']) . "<br/>";
    $message .= "Телефон пользователя: " . htmlspecialchars($_POST['tel']) . "<br/>";
    $message .= "E-mail пользователя: " . htmlspecialchars($_POST['email']) . "<br/>";
    $message .= "Задача пользователя: " . htmlspecialchars($_POST['problem']) . "<br/>";
    $message .= "Переход осуществлен с: " . htmlspecialchars($_POST['from']) . "<br/>";

    $message .= "Data Google API:<br/>";
    foreach ($data as $k => $v) {
        $message .= "{$k} - {$v}<br/>";
    }

    $message .= "Data Google API ERRORS:<br/>";
    foreach ($data->{'error-codes'} as $k => $v) {
        $message .= "{$k} - {$v}<br/>";
    }
    send_mail($message);
}

function send_mail($message) {
    $mail_to = "mymail@mailer.ru"; // почта, на которую придет письмо
    $subject = "Форма обратной связи (Новое сообщение): " . $_POST['name'] . " - " . $_POST['tel']; // тема письма
    // заголовок письма
    $headers = "MIME-Version: 1.0rn";
    $headers .= "Content-type: text/html; charset=utf-8rn"; // кодировка письма
    $headers .= "From: Веб-сайт test.com <no-reply@test.com>rn"; // от кого письмо
    if (mail($mail_to, $subject, $message, $headers)) {
        echo json_encode(true);
    }
    else {
        echo json_encode(false);
    }
}
?>

Заранее спасибо за ответы :).


  • Вопрос задан

    более трёх лет назад

  • 2983 просмотра

Понравилась статья? Поделить с друзьями:
  • Recallibration error hdd что делать
  • Recalibration error victoria что это
  • Recalibration error victoria что делать
  • Recalculation payment error and creation print document failed please check your input data перевод
  • Recalctotals 1с ошибка