fév 11

[PHP] Utiliser reCaptcha

ReCaptcha est une libraire qui permet d'ajouter facilement un captcha antispam performant sur un site web. Ce service est très populaire outre Atlantique (il est même utilisé par Twitter). Ce petit tutorial va expliquer comment s'en servir et les manières misent à disposition par reCaptcha pour personnaliser la partie d'un formulaire qui affiche le captcha.

Exemple de captcha antispam

Exemple de captcha antispam

Présentation de reCaptcha

Le spam est un vrai fléau sur le web. De nombreux sites essaient de faire des sécurités pour éviter qu'un robot utilise une application sur le web à la place d'un humain. Toutefois, la plupart des solutions existantes ne sont pas d'une grande efficacité. Malgré tout, l'outil reCaptcha se démarque du lot et est utilisé par des milliers de sites web.

ReCaptcha a également l'avantage d'être accessible grâce au formulaire qui peut être utilisé par les personnes ayant une déficience visuelle (le test visuel est alors remplacé par un test audio). Enfin, c'est gratuit et globalement facile à utiliser.

Tutorial d'utilisation de reCaptcha

1) S'inscrire sur le site recaptcha.net

La première étape consiste à s'inscrire sur le site http://recaptcha.net. Sachant que le projet recaptcha.net essaie de combattre le spam, vous pouvez presque est certain que votre adresse email utilisé pour l'inscription ne sera pas revendu à des tiers.

A la fin de l'inscription, il faut prendre note de la clé publique et de la clé privée. Sans ces deux informations, il ne sera pas possible d'utiliser la librairie.

2) Installer la librairie

Il existe plusieurs versions de la librairie et il existe également des plugins (notamment un plugin WordPress). Dans la liste des librairies reCaptacha il faut télécharger la version pour PHP. Une fois téléchargé, le fichier doit être décompressé puis installer quelque part sur l'hébergement du site web. Les débutants peuvent installer la librairie au même endroit où se trouve le formulaire qui utilisera la librairie. Les webmasters expérimentés peuvent installer la librairie dans un fichier où se situe toutes les librairies.

3) Code PHP pour afficher le captcha

Une fois que la librairie est sur l'espace web, il est possible de commencer à coder la page qui utilisera le captcha. Le code pour afficher ce captcha est relativement simple:

<?php
require_once('recaptchalib.php'); // Vérifier que l'URL relative correspond à l'emplacement du fichier (adapter si nécessaire)
$publickey = "..."; // Utiliser la clé que vous avez eu lors de l'inscription sur recaptcha.net
echo recaptcha_get_html($publickey); // Affiche le captcha
?>

Attention: il faut bien veiller à ce que l'URL relative corresponde à l'emplacement du fichier. Dans le cas contraire, il y aura une erreur sur la page car celle-ci n'aura pas réussi à accéder au fichier.

4) Code PHP de vérification

Le code PHP présenté ici est volontairement présenté à part de l'autre code. La raison est simple, il arrive que le formulaire de validation soit présent sur une autre page web. Dans le cas où le formulaire envois vers la même page, il est possible de joindre les codes sur la même page.

<?php
require_once('recaptchalib.php'); // Ne pas réafficher cette ligne dans le cas où ce code est sur la même page que le formulaire
$privatekey = "..."; // Utiliser la clé privée qui est donnée sur votre compte recaptcha.net
$resp = recaptcha_check_answer ($privatekey,
                                $_SERVER["REMOTE_ADDR"],
                                $_POST["recaptcha_challenge_field"],
                                $_POST["recaptcha_response_field"]);

if (!$resp->is_valid) { // Test si le captcha a bien été rempli
  // Si le captcha n'est pas valide
  echo 'Oups, le captcha antispam n\'est pas valide. Veuillez recommencer';
}
else{
  // Si le captcha est valide
  // Ici, utiliser votre code PHP pour traiter le formulaire
}
?>

5) Personnaliser l'aperçu du captcha

Les couleurs par défaut sont malheureusement très tape-à-l'œil. Le rouge ne va pas forcément avec le design de votre site. Il est alors pratique de pouvoir adapter le design du formulaire. Il y a quelques thèmes par défaut qu'il est possible d'utiliser. Pour cela il faut utiliser le code suivant sur votre page web entre <head> et </head>:

<script type="text/javascript">
var RecaptchaOptions={
lang: 'fr',
theme: 'clean'
};
</script>

A noter: ce code permet par la même occasion de franciser l'interface.

Il faut également savoir qu'il y a plusieurs thèmes de base possible. Il est possible de remplacer "clean" par une des valeurs suivantes: white, red (par défaut), blackglass ou custom. N'hésitez pas à tester pour voir à quoi ressemble l'interface dans chacun de ces cas.

Partager:
Faire un lien:

Commentaires »

Merci beaucoup pour le présentation. Sorry, my French is still not so good, I am just learning French.  I have translated your post into German. It was very helpful. Best regards Jennifer

Comment by Jennifer [site] — 20 février 2010 @ 13:28

@Jennifer: No problem at all. I’m glad there are visitors in different part of the world. :)

Comment by Funnycat [site] — 20 février 2010 @ 14:05

Merci bien pour ce tuto je l’ai effectivement mis en place sur un site,e t beaucoup moins de commentaire inutile d’un coup ! Bravo pour l’article .

Comment by poker gratuit sans telechargement [site] — 23 février 2010 @ 10:11

C’est très efficace mais il y a surement des logiciels qui passent outre.

Comment by anne74 [site] — 20 mars 2010 @ 18:11

@anne74: Actuellement je suis plutôt content des résultats. Si vous trouvez mieux, n’hésitez pas à me le faire savoir. :)

Comment by Funnycat [site] — 20 mars 2010 @ 18:39

Bon tuto et bon sujet. J’ai mis en place recaptcha sur mon site, c’est super facile à installer.

Comment by Christophe [site] — 22 mars 2010 @ 0:50

@Christophe: Félicitation, le captcha s’intègre plutôt bien au design de votre site.

Comment by Funnycat [site] — 22 mars 2010 @ 13:41

Merci Funnycat! :)

Comment by Christophe [site] — 23 mars 2010 @ 16:00

très bon tuto
merci

Comment by Theme wordpress gratuit [site] — 30 mars 2010 @ 0:38

Utilisateur de wordpress sur plusieurs sites j’utilise plutot simplecaptcha mais je viens de voir que ReCaptcha existe pour WP aussi … Dès que j’ai du temps je l’essayerais. Il est graphiquement sympa.

Comment by Renaud [site] — 16 avril 2010 @ 12:13

C’est effectivement très efficace mais gênant pour l’utilisateur qui dois parfois ce voir retaper plusieurs fois le code car celui ci est tellement modifier qu’il apparait difficilement lisible.

Comment by sebastien [site] — 20 août 2010 @ 18:03

Laisser un commentaire

icône 82 pixels flux RSS icône 82 pixels twitter icône 82 pixels Facebook

Partenaire

Bannière Protuts