Я использую reCaptcha и использую Ajax-вызов для моей PHP-страницы, чтобы проверить достоверность капчи, без обновления страницы.
У меня есть этот код jQuery:
$.post('php/captcha.php', $('#captchaPost').serialize(), function(data){
if(data != "Valid")
{
$('#captchaError').show();
$captchaFlag = "Invalid";
}
else
{
$('#captchaError').hide();
$captchaFlag = "Valid";
}
});
И этот PHP-код для пост-обработчика:
<?php
require_once('recaptchalib.php');
$privatekey = "1234567890";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_REQUEST["recaptcha_challenge_field"],
$_REQUEST["recaptcha_response_field"]);
if (!$resp->is_valid)
{
// What happens when the CAPTCHA was entered incorrectly
echo "Error";
}
else
{
echo "Valid";
}
?>
Я проверил ответ, используя Firebug, и PHP-скрипт всегда возвращает «Ошибка», даже когда я ввожу правильную капчу. По словам сервера, форма выглядит правильно POST, хотя я не вижу, как проверить, что было размещено в форме. Я не использую функцию PHP для создания формы reCaptcha; Я получил HTML из документации Google по этому вопросу. Любая помощь?