Important: La version 1.0 de l'API reCAPTCHA n'est plus compatible. Veuillez passer à la version 2.0. En savoir plus
La bibliothèque PHP reCAPTCHA permet de placer facilement un CAPTCHA sur votre site Web PHP, ce qui vous aidera à empêcher les robots d'en abuser. Cette bibliothèque englobe API reCAPTCHA :
Pour utiliser reCAPTCHA avec PHP, vous pouvez télécharger reCAPTCHA PHP bibliothèque. Vous n'aurez besoin que d'un seul fichier (recaptchalib.php). Les autres fichiers sont les exemples, le fichier Lisez-moi et les éléments juridiques ; ils n’affectent pas les fonctionnalités.
Démarrage rapide
Une fois que vous vous êtes inscrit pour obtenir vos clés API, vous trouverez ci-dessous des instructions de base pour installer reCAPTCHA sur votre site. Un le guide de référence du plug-in PHP est disponible ci-dessous.
Côté client (comment afficher l'image CAPTCHA)
Si vous souhaitez utiliser la bibliothèque PHP pour afficher le widget reCAPTCHA, vous devez insérer cet extrait de code inclus dans la balise <form> dans lequel le widget reCAPTCHA sera placé:
require_once('recaptchalib.php'); $publickey = "your_public_key"; // you got this from the signup page echo recaptcha_get_html($publickey);
Avec le code, votre formulaire peut se présenter comme suit:
<html> <body> <!-- the body tag is required or the CAPTCHA may not show on some browsers --> <!-- your HTML content --> <form method="post" action="verify.php"> <?php require_once('recaptchalib.php'); $publickey = "your_public_key"; // you got this from the signup page echo recaptcha_get_html($publickey); ?> <input type="submit" /> </form> <!-- more of your HTML content --> </body> </html>
N'oubliez pas de définir $publickey en remplaçant your_public_key
par
votre clé publique d'API.
Notez que la valeur du paramètre "action" est "verify.php". Maintenant, Verify.php est fichier de destination dans lequel les valeurs de ce formulaire sont envoyées. Vous aurez donc besoin d'un fichier vérifier.php au même emplacement que le code html du client.
Dans l'exemple ci-dessus, la fonction "require_once" s'attend à ce que recaptchalib.php se trouve dans le même fichier
comme fichier de formulaire. S'il se trouve dans un autre répertoire, vous devez l'associer de manière appropriée.
Par exemple, si votre fichier recaptchalib.php se trouve dans le répertoire intitulé "captcha" qui est sur le même
de votre fichier de formulaire, la fonction se présente comme suit:
require_once('captcha/recaptchalib.php')
Côté serveur (comment vérifier si l'utilisateur a saisi la bonne réponse)
Le code suivant doit être placé en haut du fichier Verify.php:
<?php require_once('recaptchalib.php'); $privatekey = "your_private_key"; $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 die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." . "(reCAPTCHA said: " . $resp->error . ")"); } else { // Your code here to handle a successful verification } ?>
Dans le code ci-dessus :
recaptcha_check_answer
renvoie un objet qui indique si l'utilisateur
réussi le défi.$resp->is_valid
a la valeur "true", le test captcha a été effectué correctement et vous devez poursuivre le traitement du formulaire.$resp->is_valid
est défini sur "false", l'utilisateur n'a pas fourni le bon captcha.
et vous devez afficher à nouveau le formulaire pour lui permettre une nouvelle tentative. Dans ce cas,
$resp->error
sera un code d'erreur pouvant être fourni à recaptcha_get_html
.
La transmission du code d'erreur entraîne l'affichage d'un message expliquant que l'utilisateur
a mal saisi le texte et vous devez réessayer.Notez que ce code demande la clé privée, qu'il ne faut pas confondre. à l'aide de la clé publique. Elle se trouve sur la même page que la clé publique.
Assurez-vous également que votre formulaire est défini de manière à obtenir les variables du formulaire en utilisant $_POST, au lieu de $_REQUEST, et que le formulaire lui-même utilise la méthode POST.
Et voilà ! reCAPTCHA devrait maintenant fonctionner sur votre site.
Documentation complémentaire
Guide de référence du plug-in PHP
Vous trouverez ci-dessous la liste complète des méthodes du plug-in PHP reCAPTCHA.
Fonction recaptcha_get_html
La fonction recaptcha_get_html
affiche le code HTML qui présente reCAPTCHA aux
la
utilisateur.
recaptcha_get_html | |
Paramètre | |
$pubkey : chaîne. obligatoire. | Votre clé publique reCAPTCHA, disponible sur la page d'inscription à l'API |
$error -- chaîne. facultatif (la valeur par défaut est "null") | Si cette chaîne est définie, la zone reCAPTCHA affiche le code d'erreur données. Ce code d'erreur provient de ReCaptchaResponse->$error |
$use_ssl -- boolean. facultatif (false est la valeur par défaut) | Faut-il utiliser l'API SSL ? Si vous présentez une page à l'utilisateur via SSL, assurez-vous de définir ce paramètre sur "true" pour qu'aucune boîte de dialogue d'erreur s'affichent dans le navigateur de l'utilisateur. |
Valeur renvoyée | Chaîne contenant le code HTML à insérer sur la page Web. |
La fonction recaptcha_check_answer
Une fois que l'utilisateur a rempli le formulaire HTML, y compris sa réponse pour le CAPTCHA, nous
souhaitent vérifier leurs réponses lorsqu'ils envoient le formulaire à l'aide de l'
fonction recaptcha_check_answer
. La réponse de l'utilisateur
se trouvera dans deux champs de formulaire :
recaptcha_challenge_field
et recaptcha_response_field
. La
La bibliothèque reCAPTCHA enverra une requête HTTP au serveur reCAPTCHA et vérifiera les paramètres
réponse.
recaptcha_check_answer | |
Paramètre | |
$privkey : chaîne. obligatoire. | Votre clé privée reCAPTCHA, disponible sur la page d'inscription de l'API. |
$remoteip -- chaîne. obligatoire. | Adresse IP de l'utilisateur, au format 192.168.0.1 |
$challenge -- chaîne. obligatoire. |
Valeur du champ du formulaire "recaptcha_challenge_field" |
$response -- chaîne. obligatoire | Valeur du champ du formulaire "recaptcha_response_field" |
Valeur renvoyée | Une instance de la classe ReCaptchaResponse |
ReCaptchaResponse | |
Champ | |
$is_valid -- boolean | reCAPTCHA pensait-il que la réponse était valide ? |
$error -- chaîne | Si la réponse n'était pas valide, quel était le problème ? Ce code d'erreur peut être utilisé dans recaptcha_get_html |
Valeur renvoyée | URL HTML ou brute permettant de décoder l'adresse e-mail, selon votre fonction appelé. |
Mailhide
La bibliothèque PHP reCAPTCHA inclut des liaisons pour l'API Mailhide. Ce L'API vous permet d'encapsuler un e-mail dans un reCAPTCHA pour empêcher les spammeurs de le voir: examen...@example.com.
La partie Mailhide de la bibliothèque PHP nécessite le module PHP mcrypt.
L'API Mailhide comprend deux fonctions recaptcha_mailhide_html
et
recaptcha_mailhide_url
Les fonctions ont les mêmes paramètres. Version _html
renvoie du code HTML
que vous pouvez placer
directement sur votre page Web. La partie nom d'utilisateur de l'e-mail qui est transmise
est tronqué et remplacé par un lien qui appelle Mailhide. La version _url donne l'URL
pour décoder l'e-mail et vous laisser le soin de le placer en HTML.
recaptcha_mailhide_url / recaptcha_mailhide_html | |
Paramètre | |
$pubkey -- chaîne | Clé publique Mailhide de la page d'inscription |
$privkey -- chaîne | Clé privée Mailhide de la page d'inscription |
$email -- chaîne | L'adresse e-mail que vous souhaitez masquer. |
L'exemple suivant montre comment utiliser Mailhide:
<html><body> <? require_once ("recaptchalib.php"); // get a key at http://www.google.com/recaptcha/mailhide/apikey $mailhide_pubkey = ''; $mailhide_privkey = ''; ?> The Mailhide encoding of example@example.com is <? echo recaptcha_mailhide_html ($mailhide_pubkey, $mailhide_privkey, "example@example.com"); ?>. <br> The url for the email is: <? echo recaptcha_mailhide_url ($mailhide_pubkey, $mailhide_privkey, "example@example.com"); ?> <br> </body></html>