ReCaptcha всегда возвращает false, без ошибок

Я установил 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; } 

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

Вот решение, если у кого-то есть аналогичная проблема:

В вашем изменении 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')); 

К:

 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

Всем спасибо.

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

 <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.