ReCaptcha всегда возвращает false, без ошибок - PullRequest
3 голосов
/ 14 января 2012

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

Вот мой код:

require_once('recaptchalib.php');
$resp = recaptcha_check_answer ($config->privkey,   $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);

if (!$resp->is_valid) {
    echo $resp->error;
}

Ответы [ 2 ]

5 голосов
/ 17 января 2012

Я нашел ответ после нескольких дней поиска ...

Вот решение, если у кого-то возникла похожая проблема:

В вашем rechaptchalib.php изменении:

define("RECAPTCHA_API_SERVER", "http://api.recaptcha.net");
define("RECAPTCHA_API_SECURE_SERVER", "https://api-secure.recaptcha.net");
define("RECAPTCHA_VERIFY_SERVER", gethostbyname('api-verify.recaptcha.net'));

To:

define("RECAPTCHA_API_SERVER", "http://www.google.com/recaptcha/api");
define("RECAPTCHA_API_SECURE_SERVER", "https://www.google.com/recaptcha/api");
define("RECAPTCHA_VERIFY_SERVER", "www.google.com");

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

http://code.google.com/p/recaptcha/downloads/list?q=label:phplib-Latest

Спасибо всем.

0 голосов
/ 14 января 2012

Вам необходимо иметь открытый ключ в файле формы и закрытый ключ в файле конфигурации:

<html>
<body> <!-- the body tag is required or the CAPTCHA may not show on some browsers -->
  <!-- your HTML content -->

  <form method="post" action="verify.php">
    <?php
      require_once('recaptchalib.php');
      $publickey = "your_public_key"; // you got this from the signup page
      echo recaptcha_get_html($publickey);
    ?>
    <input type="submit" />
  </form>

  <!-- more of your HTML content -->
</body>
</html>

Это ваш файл, куда отправляется запрос формы:

<?php
  require_once('recaptchalib.php');
  $privatekey = "your_private_key";
  $resp = recaptcha_check_answer ($privatekey,
                            $_SERVER["REMOTE_ADDR"],
                            $_POST["recaptcha_challenge_field"],
                            $_POST["recaptcha_response_field"]);

  if (!$resp->is_valid) {
    // What happens when the CAPTCHA was entered incorrectly
    die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
     "(reCAPTCHA said: " . $resp->error . ")");
  } else {
    // Your code here to handle a successful verification
  }
  ?>

Для получения дополнительной помощиВы можете перейти к: http://code.google.com/apis/recaptcha/docs/php.html

...