Projet

Général

Profil

Demande #948

ajout question antispam sur formulaire d'adhésion gdtc

Ajouté par Quentin Gibeaux il y a plus de 11 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normale
Assigné à:
Catégorie:
-
Version cible:
-
Début:
16/08/2012
Echéance:
% réalisé:

100%

Temps estimé:
Difficulté:

Description

Ajouter une question simple d'antispam sur le formulaire d'adhésion gtdc (voir formulaire drupal et cgi perl de gdtc)

Historique

#1

Mis à jour par Quentin Gibeaux il y a plus de 11 ans

Un petit captcha fonctionne sur le preprod, voici les modifications apportées à gdtc :
dans cgi-bin/adhesion.pl :

# svn diff adhesion.cgi 
Index: adhesion.cgi
===================================================================
--- adhesion.cgi        (révision 1445)
+++ adhesion.cgi        (copie de travail)
@@ -346,6 +346,18 @@
        return @missing_fields;
     }

+    my $captcha = lc $q->param('captcha');
+    $captcha =~ s/\W+//g; 
+    if ( $captcha !~ /(april|libre)/i )
+    {
+        # Affichage de l'en-tete HTTP et HTML
+        print $q->header, $q->start_html;
+        print $q->hr;
+       print "<strong>Attention: </strong> La r?ponse ? la question Captcha est erron?e.<br>\n";
+       print $q->hr;
+       return 'Error:'.$q->param('captcha');
+    }
+
     # Check for possible spam
     my $origdate =  $q->param ('turingtest');
     my $now = `date +%s`;

dans le formulaire sur drupal :
Juste après : '' Les champs suivant sont obligatoires.<br /> ''
        <label style="display:block;width:600px;float:left;" for="form_adhesion_captcha"> <font color="red"><strong>Antispam :</strong> Quel est le nom de l'association à laquelle vous vous apprêtez à adhérer ?</font></label>               
                        <input id="form_adhesion_captcha" type="text" name="captcha" size="30"/><br />

#2

Mis à jour par Quentin Gibeaux il y a plus de 11 ans

  • Statut changé de Nouveau à En cours de traitement
  • % réalisé changé de 0 à 50

Patch mis en prod pour les formulaire d'adhésion normale et complète (http://www.april.org/adherer-maintenant-a-lassociation-april-pour-soutenir-le-logiciel-libre-1 et http://www.april.org/association/adhesion-liste.html)

Les autres formulaires d'adhésion pour les personnes morales n'utilisent pas le même script… je vais le regarder.

#3

Mis à jour par Quentin Gibeaux il y a plus de 11 ans

patchage du formulaire personnes morales :

dans ''htdocs/adhesion-pm.php''

# svn diff adhesion-pm.php 
Index: adhesion-pm.php
===================================================================
--- adhesion-pm.php     (révision 1445)
+++ adhesion-pm.php     (copie de travail)
@@ -69,6 +69,18 @@
     exit;
 }

+$captcha = strtolower ( $_POST [ 'captcha' ]);
+$captcha = preg_replace ( '/[^a-z0-9-]/', '', $captcha );
+
+
+if (!preg_match('/(april|libre)/',$captcha))
+{
+    redirect ( 'http://www.april.org/fr/adhesion-' . $french [ $_POST [ 'type' ] ] .
+               "?erreur=captcha"."&".MakeRequestUrl($_POST) );
+    exit;
+}
+
+
 $nickname = strtolower ( recode_string ( "utf-8..flat", $_POST['name'] ) );
 $nickname = preg_replace ( '/[^a-z0-9-]/', '', $nickname );

Dans le formulaire drupal :

Au début dans la partie script :

if ( $_GET['erreur'] == "captcha" ) {
  print '<div class="error">';
  print "<li>"."Le champs antispam est erroné."."</li>\n";
  print '</div>';
 }

Dans le formulaire, après ''<input type="hidden" name="type" value="company" />'' :

<label style="display:block;width:600px;float:left;" for="form_adhesion_captcha"> <font color="red"><strong>Antispam :</strong> Quel est le nom de l'association à laquelle vous vous apprêtez à adhérer ?</font></label>               
                        <input id="form_adhesion_captcha" type="text" name="captcha" size="30"/><br />

#4

Mis à jour par Quentin Gibeaux il y a plus de 11 ans

Léger soucis sur le captcha de adhesion.cgi : si le champs était vide, le message d'erreur était bien affiché mais n'arrêtait pas le script (la fonction retournait la valeur du champs captcha, si c'est vide, le if de déroutage voyait un false). J'ai ajouté une chaine pas défaut, le problème est réglé.

#5

Mis à jour par Quentin Gibeaux il y a plus de 11 ans

formulaire adhésion personnes morales patché en prod.

#6

Mis à jour par Quentin Gibeaux il y a plus de 11 ans

  • Statut changé de En cours de traitement à Fermé
  • % réalisé changé de 50 à 100
#7

Mis à jour par Christian P. Momon il y a plus de 3 ans

  • Assigné à mis à Quentin Gibeaux

Formats disponibles : Atom PDF