Раздел вопрос-ответ Recaptcha не работает с https

Recaptcha не работает с https. По http каптча работала хорошо и сейчас работает на тестовом домене по http. 

Используется reCAPTCHA with PHP. Для вывода html-капчи используется функция recaptcha_get_html.

В консоли браузера появляется ошибка:

Mixed Content: The page at 'https://example.com' was loaded over HTTPS, but requested an insecure script 'http://www.google.com/recaptcha/api/challenge?k=6LeEIQkTAAAAAKuG3kMOqrowdgUhqpoE9N654Vj5'. This request has been blocked; the content must be served over HTTPS.

 

share

1 ответ

Подробное описание функции recaptcha_get_html на гугл-девелоперс. Функция может принимать 3-й необязательный параметр $use_ssl (по умолчанию false). Соответственно, для работы reCaptcha + https нужно передавать $use_ssl = true. Т.е. вот так:

recaptcha_get_html($publickey, NULL, true);

Или универсальный вариант показа reCaptcha, который будет работать и для http, и для https:

recaptcha_get_html($publickey, $error, @$_SERVER['SERVER_PORT'] == 443);
$pubkey -- Строка. Обязательный параметр. Ваш публичный ключ для доступа к reCAPTCHA API.
$error -- Строка. Не обязательный (null по умолчанию) Если строка передана, то reCAPTCHA покажет полученный код ошибки. Код ошибки ReCaptchaResponse->$error.
$use_ssl -- Булев тип. Не обязательный (false по умолчанию). Используете ли вы https? Если вы показывает страницы через SSL (https), установите этот параметр в true.
Добавить комментарий
    как минимум 5 символов

    icon Вход в систему

    зарегистрироваться
    НОВЫЕ ПОЛЬЗОВАТЕЛИ