Поиск неисправностей

Важно ! Версия 1.0 API reCAPTCHA больше не поддерживается, обновите ее до версии 2.0. Узнать больше


Не могу понять, куда добавить reCAPTCHA

Этот совет применим ко всем, кто интегрирует reCAPTCHA, независимо от языка.

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

  • Отображение reCAPTCHA. Первой горячей точкой является код, генерирующий форму. Надеемся, что его достаточно легко найти (найдя тег <form> в вашем HTML), и вы смогли отобразить CAPTCHA в своей форме.

  • Проверьте reCAPTCHA: вторая горячая точка — это та, которая, по-видимому, вызывает у людей проблемы. Вам необходимо определить код, который обрабатывает отправку формы – это код, который запускается, когда пользователь нажимает кнопку «Отправить» . Трудно дать обобщенное представление о том, как выглядит этот код, но вот несколько подсказок, которые могут вам помочь:

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

    Форма уже прошла проверку

    Жизнь будет проще, если в вашей форме уже есть некоторая логика проверки (т. е. она обрабатывает недопустимые вводимые пользователем данные, отображая сообщение вместо выполнения обычного действия). Если это так, и вы можете найти код, который делает это, вы почти свободны. Если форма может отображать сообщение об ошибке, найдите текст сообщения об ошибке в коде, и вы обязательно будете рядом. После того, как вы нашли код проверки, вам нужно добавить вызов функции check_answer в дополнение к любым другим проверкам (адрес электронной почты пуст? Слишком молодой возраст? и т. д.).

    Форма не имеет проверки

    Если в вашей форме в настоящее время нет логики проверки (если нажатие кнопки «Отправить» всегда завершается успешно), то у вас есть более сложная проблема. В этом случае вам придется добавить код проверки reCAPTCHA непосредственно перед тем, как существующий код обработки формы сделает все, что он делает, когда пользователь отправляет данные. Вам также придется придумать, как повторно отобразить форму, чтобы дать пользователю еще одну попытку ввода капчи. К сожалению, нет единого ответа на вопрос, как это сделать. Это полностью зависит от структуры уже имеющегося у вас кода. Если существующий код не слишком сложен, возможно, вам удастся опубликовать его на форуме разработчиков reCAPTCHA и попросить совета. (Если вы публикуете там сообщение, обязательно включите достаточно информации, чтобы другие могли вам помочь; просто сказать «мой код не работает» обычно не дает хороших результатов.)

  • Это не работает! Помощь!

    Прежде чем делать что-либо еще, убедитесь, что вы используете правильные клавиши. Поменялись ли ваши открытый и закрытый ключи? Вы не забыли поместить закрытый ключ в обработчик формы, а также открытый ключ в форму?

    Обратите внимание, что Mailhide использует ключи, отличные от ключей reCAPTCHA на основе основной формы.

    Убедитесь, что ваша форма использует метод POST, или измените переменные обработчика формы reCAPTCHA на GET вместо POST.

    Если reCAPTCHA работала и вы внезапно начали получать сообщение «Произошла внутренняя ошибка», удалили ли вы недавно учетную запись Google, которую использовали для регистрации ключей? Если да, зарегистрируйтесь для получения новых ключей с активной учетной записью и попробуйте их.

    reCAPTCHA принимает неправильные слова

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

    Нет, я имею в виду *совершенно* неправильные слова

    Если reCAPTCHA принимает какие-либо входные данные, вы, вероятно, неправильно проверяете ответ reCAPTCHA на серверах API. То есть либо: (1) вы неправильно вызываете https://www.google.com/recaptcha/api/verify (или эквивалентную функцию, если вы используете плагин, например recaptcha_check_answer в PHP), или ( 2) вы не предпринимаете соответствующих действий, учитывая ответ наших серверов. Пожалуйста, ознакомьтесь с конкретными инструкциями, которые вы использовали для установки reCAPTCHA (независимо от того, через плагин или нет), чтобы узнать, как проверить, правильно ли пользователь ввел ответ.

    Мои пользователи начинают получать односложные капчи

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

    Простая капча

    Если вас интересует безопасность этих простых проверок, посетите наш блог: http://googleonlinesecurity.blogspot.com/2013/10/recaptcha-just-got-easier-but-only-if.html .