< Retour

Ajouter un captcha

Vendredi 14 janvier 2022 - 16:27

Introduction

L'utilisation d'un captcha permet de sécuriser l'utilisation des formulaires publics (généralement formulaire de contact) et éviter les envois parasites effectués par les robots. Il y a de multiples solutions disponibles sur internet. Le choix s'est porté sur IconCaptcha qui est simple d'utilisation pour l'utilisateur et efficace.

Présentation

Coté utilisateur, la validation du captcha s'effectue en deux temps.

Lors de la première étape, il suffit de cliquer sur l'image affichée

Initialisation

S'affiche alors une série de 5 à 8 vignettes. Il faut choisir la vignette la moins représentée.

vignettes

 

Mise en oeuvre

  1. Dans le template html, ajouter le fichiers css et js :
    <link href="vendor/iclick/ic/vendor-lib/Captcha/Css/icon-captcha.min.css" rel="stylesheet" type="text/css">
    <script src="vendor/iclick/ic/vendor-lib/Captcha/iconcaptcha.js"></script>
    <script src="vendor/iclick/ic/vendor-lib/Captcha/polyfill.js"></script>
  2. Dans le formulaire, ajouter le captcha et le bouton de validation. Indiquer la classe du bouton permet d'automatiquement masquer le bouton et de l'afficher lorsque le captcha est correctement validé. 
    $form->addCaptcha('class-valid', 'Etes-vous un cheval ?')->addClass('mx-auto');
    $form->addButton(null, 'Envoyer')->submit()->addClass('class-valid');
  3. Dans la fonction  de validation du formulaire, vérifier que le captcha a bien été validé.
    $control = ic::isCaptcha();
    if ( !$control ){
    return false;

Sommaire de l'article