Demande #948
ferméajout question antispam sur formulaire d'adhésion gdtc
Ajouté par Quentin Gibeaux il y a plus de 12 ans. Mis à jour il y a presque 4 ans.
100%
Description
Ajouter une question simple d'antispam sur le formulaire d'adhésion gtdc (voir formulaire drupal et cgi perl de gdtc)
Mis à jour par Quentin Gibeaux il y a plus de 12 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 />
Mis à jour par Quentin Gibeaux il y a plus de 12 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.
Mis à jour par Quentin Gibeaux il y a plus de 12 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 />
Mis à jour par Quentin Gibeaux il y a plus de 12 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é.
Mis à jour par Quentin Gibeaux il y a plus de 12 ans
formulaire adhésion personnes morales patché en prod.
Mis à jour par Quentin Gibeaux il y a plus de 12 ans
- Statut changé de En cours de traitement à Fermé
- % réalisé changé de 50 à 100