2010-10-04 6 views
0

J'ai un script php qui utilise la ligne suivante pour soumettre un formulaire:Intégration reCAPTCHA avec le script PHP existant

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

Maintenant, pour protéger les robots d'utiliser abusivement la forme que je veux mettre en œuvre reCAPTCHA comme décrit ici:

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

La logique reCAPTCHA fonctionne correctement affichant le message de réussite/échec de vérification, mais le formulaire n'est pas envoyé. Voici le code que je utilise pour mettre en œuvre reCAPTCHA:

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

partie de validation que je me sers pour appeler ma fonction load_ajax() (qui indique la soumission de forme réussie):

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> 

Je ne suis pas expert php/javascript alors une aide est nécessaire.

Merci

+0

Je ne peux toujours pas croire que les gens ne savent pas comment mettre en œuvre jQuery discrètement. '

Répondre

0

L'erreur était dans cette ligne dans la routine de validation (retour était fausse prévention de routine d'action de forme):

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

0

Votre formulaire n'est pas envoyé car vous ne faites rien après la validation. Placez une action dans votre propriété form.action et appelez-la à l'aide de jquery lorsque validateCaptcha a la valeur true.

+0

Merci d'avoir répondu, j'ai essayé ce qui suit: mais ça ne marche pas, comme je le disais j'apprends toujours javascript/php – Stacked