У меня есть форма, которая проверяет и публикует сообщения с помощью Ajax или, более конкретно, с помощью $.post()
.
. В какой-то момент есть reCaptcha.Эта форма работала нормально, когда я не использовал $.post()
, но опубликовал старомодный способ (с обновлением страницы), просто для справки.
Преобразование формы требует, чтобы я изменил все $_POST
на$_REQUEST
s.Тем не менее, это не решает проблему reCaptcha, поэтому я оставил ее без изменений.Вот PHP-код reCaptcha внутри registerPost.php:
require_once('recaptchalib.php');
$privatekey = "dropbeatsnotbombs";
$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
echo "Error";
}
else {
//post form
}
Вот jQuery, обрабатывающий отправку формы:
$.post('php/registerPost.php', $('#registerPost').serialize(), function(data){
if(data == "Error")
{
$('#caErr').show();
}
else
{
window.location.replace("//main page");
}
});
Примечание: reCaptcha кажется вернуть как ложное, так как форма не будет отправлена, когда все заполнено правильно.
Что я хочу сделать, это показать ошибку, если reCaptcha была введена неправильно, и опубликовать, если она была введенаверно, все асинхронно.
Любая помощь?