073 - Contact avec captcha de Google

Je vous donne ci-dessous un modèle de formulaire avec la liste des pays et les jours, mois et année pour la date de naissance . A la fin, un captcha qui vérifie que celui qui remplit le formulaire, est bien un humain, pas un robot.:

Pour faire ce captcha, j'ai utilisé les services de Google avec l'API reCaptcha.

https://www.google.com/recaptcha/intro/index.html

Avec ce nouveau captcha, plus besoin de relire du code illisible !

Dans le moteur de recherche Google vous écrivez : recaptcha

Vous demandez cette page :

https://www.google.com/recaptcha/intro/index.html

Vous cliquez sur cette page sur le bouton bleu Get Captcha

BoutonGet reChaptcha  à cliquer

Vous remplissez le formulaire de Google :

mon site

nom de domaine

nom du propriétaire du site

Vous obtenez ensuite deux clés quand vous enregistrez le formulaire chez Google.

Une pour le HTML et une secrète pour le php que vous mettrez dans le fichier captcha_check.php que vous créez prochainement.*

Première Etape :

Vous suivez les instructions pour la première étape dans le code html de votre page du formulaire . Mettre la première clé :

<div class="g-recaptcha" data-sitekey="première clé"></div>

Et vous regardez votre page dans votre serveur d'évaluation Wamp sinon, vous aurez une Invalid Error.

Deuxième étape :

Utilisation du captcha côté serveur pour confirmer depuis Google que la personne qui a coché la case n'est pas un robot.

là, il faut utiliser une API. ce qui n'est pas tout à fait simple.

Heureusement Google est là pour nous aider.

Sur la page Google, cliquer sur le lien de la phrase :

Le site de documentation reCAPTCHA propose des informations plus détaillées et des configurations avancées.

Puis dans le menu gauche qui s'affiche cliquer sur Introduction

Dans la page obtenue, cliquer sur PHP dans code examples :

Dans Etape2, intégration au serveur, cliquez sur le lien :

Le site de documentation reCAPTCHA

Cliquez sur Composer pour télécharger Composer et le placer dans le fichier avec la page contenant votre formulaire dans le dossier www de Wamp Serveur :

pour moi, j'ai un dossier dans www qui s'appelle captcha .

Dans l'invite de commandes dos de Windows, je vais télécharger composer dans le dossier de Wamp:

D:\wamp\www\captcha>php composer google/recaptcha "~1.1"

Les fichiers composer.phar, composer.lock et composer.json se placent ainsi qu'un dossier vendor qui a le fichier autoload.php

Dans vendor, il y a 2 dossiers : composer et Google et un fichier autoload.php

* créer un nouveau fichier captcha-check.php et mettre la ligne de php :

<?php require _DIR_.'/vendor/autoload.php';

?>

cette ligne appelle le fichier autoload.php de vendor

ensuite, compléter ce code php

<?php require __DIR__.'/vendor/autoload.php';

$recaptcha = new \ReCaptcha\ReCaptcha('clé secrète');
$resp = $recaptcha->verify($_POST['g-rechaptcha-response'], $_SERVER['REMOTE_ADDR']);
if ($resp->isSuccess()) {
// verified!
echo'Vous êtes bien un humain pas un robot!';
// enregistrer le formulaire
} else {
echo'vous êtes un robot, passez votre chemin !';
//Bloquer l'envoi du formulaire, ne rien faire
}
?>

la clé secrète est celle donnée par Google *

Voilà maintenant le captcha est fonctionnel.

 

Formulaire

Civilités :

Compétences :



 

captcha :

 

NB - Tout allait bien avec mon serveur Wamp, mais j'ai galéré chez mon hébergeur.... J'ai du mettre une ligne dans mon fichier .htaccess (Comme je ne pouvais pas modifier le fichier php.ini) pour que le recaptcha fonctionne quand le visiteur clique sur le bouton envoyer:

php_value allow_url_fopen On

A votre tour de mettre ce captcha dans vos formulaires.