Utiliser le captcha de Google pour lutter contre le spam

Article ajouté le 02/01/2019

Lorsqu'on le met en place sur les formulaires HTML, le captcha de chez Google reCAPTCHA est une bonne solution pour lutter contre le spam.

Dans la v2 du captcha, une simple case à cocher nous permet de savoir si un utilisateur est ou n'est pas un robot.

Obtention du captcha reCAPTCHA

La mise en place du captcha ce fait assez simplement. Pour cela, il vous suffit de vous rendre sur la rubrique reCAPTCHA de Google et de cliquer sur "Get reCAPTCHA" : https://www.google.com/recaptcha/intro/android.html

Il vous faut bien sûr un compte Google. Vous pourrez ensuite ajouter votre site en choisissant le type de captcha : case à cocher, arrière-plan ou application.

Mise en place du captcha

Dans le corps de la page HTML :

Cette div HTML constitue votre captcha. Placez-la dans votre contenu à l'emplacement où vous souhaitez voir apparaître le captcha, en veillant bien à remplacer la valeur de data-sitekey par la clé publique fournie par Google.

<div class="g-recaptcha" data-sitekey="VOTRE_CLEF_PUBLIQUE"></div>

Côté client, le javascript :

C'est l'appel à l'API reCAPTCHA de chez Google. Rien de bien compliqué.

<script src="https://www.google.com/recaptcha/api.js"></script>

Script PHP côté serveur :

Et voici la petite condition qui va nous permettre de valider ou non la soumission du formulaire. Dans ce script PHP on interroge l'API reCAPTCHA pour savoir si l'utilisateur est humain ou robot grâce à notre clé privée (Fournie lors de l'inscription). Veillez donc à bien changer la valeur de la variable GET secret.

$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".VOTRE_CLEF_PRIVEE."&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR']);
$obj = json_decode($response);

if($obj->success == true)
{
   // Action du formulaire
}
else
{
   // Message d'erreur : Prouvez que vous n'êtes pas un robot par le biais du captcha
}

Poster un commentaire

Commentaire

Nom

Adresse e-mail

Votre adresse e-mail n'est pas publiée lorsque vous ajoutez un commentaire.
Tous les champs sont obligatoires pour soumettre votre commentaire.