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
S'affiche alors une série de 5 à 8 vignettes. Il faut choisir la vignette la moins représentée.
Mise en oeuvre
- 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> - 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'); - 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