Forum ZitePLUS

La communauté des utilisateurs du CMS ZitePLUS

Vous n'êtes pas identifié(e).

#1 28/01/2020 12:08:54

pydou
Membre
Inscription : 01/04/2010
Messages : 107
Site Web

Captcha or not Captcha

Marre de recevoir des demandes de robot via le module contact ???

j'ai trouvé une bonne alternative au Captcha ... là :   https://www.codeur.com/blog/alternatives-captcha/

Prenons un formulaire « normal », ajoutons un champ caché (que les utilisateurs ne peuvent pas voir).  Si le champ caché est rempli lors de la soumission du formulaire, cela signifie que c’est un bot, pas un humain. Les robots en effet remplissent systématiquement tous les champs qu’ils trouvent, même ceux qu’une ligne de CSS a rendu invisible pour les humains.

En ajoutant 2 lignes au module contact.php  on y est ...

à la fin on ajoute un div caché avec un champ texte (ligne 168 : en gras souligné):

            self::$cms->doevent(eCaptcha,eBefore,$out,true);
      $out .= '    <div style="visibility:hidden"><input type="text" name="verif" value="" /></div>';
      $out .= '    <div style="text-align:center;"><input type="submit" name="envoi" value="'.$this->get_message('envoyer').'" /></div>'."\n";


Avant d'envoyer le mail, on vérifie que le champ est bien resté vide  (ligne 84 : en gras souligné ):

            }
      if ($_POST['verif']!="") $err_formulaire=true;
                // Pas d'erreur => envoyer le message
      if ($err_formulaire==false) {


Simple , invisible et efficace !!!

Hors ligne

#2 30/01/2020 12:57:56

Stefpei
Membre
Lieu : Nantes
Inscription : 12/06/2009
Messages : 343
Site Web

Re : Captcha or not Captcha

j'utilise ce principe depuis "quelques années".
Je l'ai même doublé :

  j'ai un 1er champ, nommé "email" avec value="" qui a un nom attirant, et qui doit rester vide { autrement : exit !}
  j'ai un autre champ, nommé "plein" avec value="plein" ... et s'il est différent à l'arrivée { exit !}


Stéphane
Webdesign AvantageWeb

Hors ligne

Pied de page des forums