将reCAPTCHA与现有PHP脚本集成

时间:2010-10-04 09:24:11

标签: php javascript jquery recaptcha

我有一个php脚本,它使用以下行提交表单:

<form action = "javascript:void(null);" onsubmit = "load_ajax();" name = "myform">

现在,为了保护机器人不要滥用我想要实现reCAPTCHA的表单,如下所述:

http://www.darksideofthecarton.com/2008/12/15/validating-recaptcha-with-jquery-and-ajax/

reCAPTCHA逻辑正常显示验证成功/失败消息,但表单未提交。以下是我用来实现reCAPTCHA的代码:

<form action = "javascript:void(null);" onsubmit = "return validateCaptcha()" name = "myform">

我用来调用我的load_ajax()函数的验证部分(表示成功提交表单):

    function validateCaptcha()
{
    challengeField = $("input#recaptcha_challenge_field").val();
    responseField = $("input#recaptcha_response_field").val();
    //alert(challengeField);
    //alert(responseField);
    //return false;
    var html = $.ajax({
    type: "POST",
    url: "ajax.recaptcha.php",
    data: "recaptcha_challenge_field=" + challengeField + "&recaptcha_response_field=" + responseField,
    async: false
    }).responseText;

    if(html == "success")
    {
        $("#captchaStatus").html("Success. Submitting form.");
        return false;
        // Uncomment the following line in your application
        load_ajax();
        return true;
    }
    else
    {
        $("#captchaStatus").html("Image verification failed, Pls. enter the image verification code correctly.");
        Recaptcha.reload();
        return false;
    }
}
</script>

我不是php / javascript专家,所以需要帮助。

由于

2 个答案:

答案 0 :(得分:0)

您的表单未提交,因为您在验证后没有执行任何操作。 在form.action属性中放置一个动作,并在validateCaptcha为true时使用jquery调用它。

答案 1 :(得分:0)

错误出现在验证例程的这一行中(正在返回错误的表单操作例程):

$("#captchaStatus").html("Success. Submitting form."); return false;