2011-02-16 4 views
2

Je suis nouveau dans l'utilisation du service Web Google Recaptcha pour bloquer le spam dans certaines pages Web de mon site Web, plus cela en utilisant AJAX en fusionnant Javascript et PHP pour répondre à ma page Web. J'ai lu toutes les informations qui s'y rapportent dans le lien suivant et j'ai effectué les étapes et tout était correct.Comment accéder aux paramètres Recaptcha [recaptcha_challenge_field et recaptcha_response_field]?

Google Code recaptcha Documentation

Le problème que je pose est les deux champs utilisés dans le processus de vérification [de recaptcha_challenge_field et recaptcha_response_field]

Quand j'appelle la fonction recaptcha_check_answer en verify.php il me donne l'erreur suivante: -

incorrect-captcha-sol

ce qui signifie que sont nuls et ne sont pas définis [recaptcha_challenge_field et recaptcha_response_field].

Ces deux champs et variables devraient avoir l'entrée dans la bibliothèque PHP reCAPTCHA que j'ai utilisée pendant son processus et devraient avoir des getters pour les avoir et passer dans la fonction mentionnée.

J'ai cherché le fichier php recaptchalib.php pour cela mais je ne l'ai pas trouvé.

Dois-je ajouter de nouveaux éléments d'entrée de type caché et les renommer avec recaptcha_challenge_field et recaptcha_response_field pour stocker les paramètres recaptcha?

Je me demande comment je peux les passer correctement, car je les laisse comme le dit le guide, mais cela ne fonctionne pas correctement. Ai-je besoin de définir de nouvelles variables pour eux et comment les lier avec les paramètres recaptcha réels.

Je voudrais demander qui a mis en œuvre recaptcha et utilisé avant de me dire comment résoudre et je remercie de votre aide et Merci d'avance pour votre réponse

+1

veuillez joindre votre code reCaptcha. – kjy112

Répondre

1

Le code côté client fourni à http://code.google.com/apis/recaptcha/docs/php.html:

require_once('recaptchalib.php');<br /> 
$publickey = "your_public_key"; // you got this from the signup page<br /> 
echo recaptcha_get_html($publickey); 

se développe pour:

<script type="text/javascript" src="http://www.google.com/recaptcha/api/challenge?k=your_public_key"></script> 

<noscript> 
    <iframe src="http://www.google.com/recaptcha/api/noscript?k=your_public_key" height="300" width="500" frameborder="0"></iframe><br/> 
    <textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea> 
    <input type="hidden" name="recaptcha_response_field" value="manual_challenge"/> 
</noscript> 

en ce moment, je reçois la version « noscript » pour travailler en incluant uniquement les lignes à l'intérieur du n balise oscript; pas le tag lui-même, et la suppression de la balise de script et de son contenu entièrement. L'inconvénient est que vous devez faire un copier-coller manuel dans le cadre du processus d'approbation.

La version de script affiche, rafraîchit, accepte l'entrée, etc., mais les variables recaptcha_challenge_field recaptcha_response_field CGI restent non définies, selon print_r($_POST); dans le PHP cible du formulaire.

J'ai donc une demi-solution au problème posé ci-dessus.