Работа reCAPTCHA с https

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Как то надо было поставить капчу для формы на сайте, формы не генерятся а написаны на html, action формы ссылается на php скрипт, который обрабатывает полученные данные и делает отправку на почту. Вроде все просто.

Зарегистрировал сайт в сервисе гугла reCAPTCHA, скачал архив для работы с капчей для php, recaptcha-php-1.11.

В архиве лежит файл с примером example-captcha.php


<html>
<body>



<form action="" method="post">
<?php require_once('recaptchalib.php'); // Get a key from https://www.google.com/recaptcha/admin/create $publickey = ""; $privatekey = ""; # the response from reCAPTCHA $resp = null; # the error code from reCAPTCHA, if any $error = null; # was there a reCAPTCHA response? if ($_POST["recaptcha_response_field"]) { $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if ($resp->is_valid) {
echo "You got it!";
} else {
# set the error code so that we can display it
$error = $resp->error;
}
}
echo recaptcha_get_html($publickey, $error);
?>

<input type="submit" value="submit" />
</form>



</body>
</html>

Добавляю в свою форму, функцию вывода капчи, подключаю библиотеку, и ключи.


echo recaptcha_get_html($publickey, $error);

Но капча так и не показывается а в консоли браузера видна ошибка, фаерфокс блокирует http запрос, так как сайт находится на https.

И что теперь делать?

Решение, работа капчи с https

Оказывается у функции recaptcha_get_html(), есть еще один параметр, это

$use_ssl = false


function recaptcha_get_html ($pubkey, $error = null, $use_ssl = false){

}

Тоесть если сайт на https надо задействовать третий параметр, поставив true


echo recaptcha_get_html($publickey, $error, true);

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *