Неуловимая ошибка recaptcha. Копировать код всегда не удается

Очень небольшое количество моих пользователей получает капчу, который просит их скопировать и вставить код, но для них всегда не удается - в то время как большинство пользователей получают нормальный (checkbox), который проходит правильно. Googling только вернул три примера людей, получающих этот captcha, ни один из которых не имел никакой ценной информации.

Любые идеи относительно того, почему они получают эту капчу, и, самое главное, почему она терпит неудачу?

Ответ 1

Почему это происходит:

Это происходит, когда клиент отключен JavaScript. Давайте рассмотрим следующий пример кода.

Пример кода из reCAPTCHA: Советы и рекомендации Документация API:

<script type="text/javascript"
   src="https://www.google.com/recaptcha/api/challenge?k=your_public_key">
</script>

<noscript>
   <iframe src="https://www.google.com/recaptcha/api/noscript?k=your_public_key"
       height="300" width="500" frameborder="0"></iframe><br>
   <textarea name="recaptcha_challenge_field" rows="3" cols="40">
   </textarea>
   <input type="hidden" name="recaptcha_response_field"
       value="manual_challenge">
</noscript>

Как мы видим, существуют теги noscript, содержащие iframe, a textarea и скрытые input. Когда JavaScript отключен, он отобразит содержимое тегов noscript и будет выглядеть примерно так.

JavaScript disabled

iframe содержит форму, в которой пользователь может ввести captcha и отправить форму, на которой iframe будет загружать новую страницу, содержащую код ответа. Поскольку JavaScript отключен, единственный способ получить этот токен в форме родительской страницы состоит в том, чтобы пользователь копировал и вставлял токен в textarea в примере.

Обход проблемы:

Пока пользователь правильно копирует и вставляет токен, он должен работать нормально. Дважды проверьте, что HTML для captcha содержит правильные резервные элементы. Вы также можете отключить JavaScript в своем браузере, чтобы проверить его самостоятельно.