Моя reCaptcha теперь включена в мой процесс регистрации с использованием ajax ..
В настоящее время, независимо от того, что набрано в текстовом поле капчи, оно никогда не проверяется. Он просто продолжает давать мне новые слова для ввода.
Я подумал, что это потому, что мне нужно проверить, правильно ли пользователь ввел правильный код проверки. Мне нужно отправить запрос POST.
Я понятия не имею, как это сделать .. Мне никогда не приходилось делать это раньше, и документация для меня недостаточно ясна ..
Буду признателен за любую помощь.
Вот мой код:
$(document).ready(function(){
$('#fhjoinForm').submit(function(e) {
register();
e.preventDefault();
});
});
function register()
{
hideshow('loading',1);
error(0);
$.ajax({
type: "POST",
url: "submit.php",
data: $('#fhjoinForm').serialize(),
dataType: "json",
success: function(msg){
if(parseInt(msg.status)==1)
{
Recaptcha.create("pub key xxxxxxxxxxx",
"recaptcha_div",
{
theme: "clean",
callback: function(){
// what to do on success
window.location=msg.txt;
}
}
);
}
else if(parseInt(msg.status)==0)
{
error(1,msg.txt);
}
hideshow('loading',0);
}
});
}
function hideshow(el,act)
{
if(act) $('#'+el).css('visibility','visible');
else $('#'+el).css('visibility','hidden');
}
function error(act,txt)
{
hideshow('error',act);
if(txt) $('#error').html(txt);
}
Это для моего почтового запроса
<?php
require_once('recaptchalib.php');
$publickey = "pub key hidden"; // you got this from the signup page
$privatekey = "priv key hidden";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if ($resp->is_valid) {
?>success<?
}
else
{
die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
"(reCAPTCHA said: " . $resp->error . ")");
}
?>