[Résolu] Formulaire d'inscription et utilisation de pattern

Sur un site j’avais des inscriptions spams avec comme noms des trucs du genre « swIdDvSxzIdRUkINfqw » et des IP venant de multiples pays… Ni le piège à bot du formulaire inscription.html ni nospam ne règlaient le souci… Un temps j’avais bloqué les inscriptions, puis après avoir inscrit deux personnes à la main, on avait rouvert… depuis le 10 janvier environ 150 inscriptions spams de ce type… Rien de très grave mais un peu lassant, et les spammeurs eux ne semblaient pas se lasser.
Alors j’ai inséré dans le champ nom du formulaire d’inscription un attribut pattern avec une Regexp en contrainte. Ca a calmé (pour l’instant ?) les spammeurs :slight_smile:
Au départ je voulais rendre obligatoire prénom et nom (c’est comme ça que les rédacteurs/admins du site sont enregistrés sur ce site, avec leurs vrais prénoms et noms bien sûr). Mais c’était un peu compliqué pour moi alors je me suis contenté d’imposer des minuscules après une première lettre en minuscule, avec cette RegExp après l’attribut : pattern="^[A-Z][a-z]+(-[A-Z][a-z]+)?([ ][A-Z][a-z]+)?$"
Si quelqu’un voit comment améliorer ? Ca couvre beaucoup de cas de noms d’auteurs qu’on a et si quelqu’un se trouvait bloqué il nous demanderait (on n’a pas d’inscriptions d’auteurs tous les jours)

Maintenant la présence de cet attribut provoque l’apparition de crochets et parenthèses, pas très jolis…


Le code complet de la phrase du formulaire avec le nom :
<input type="text" class="text" name="nom_inscription" id="nom_inscription" value="#ENV{nom_inscription}" size="30" [(#HTML5) [(#ENV{focus}|=={nom_inscription}|oui)autofocus="autofocus" ] required="required" pattern="^[A-Z][a-z]+(-[A-Z][a-z]+)?([ ][A-Z][a-z]+)?$"] autocapitalize="off" autocorrect="off">
Ce n’est pas très grave mais c’est inesthétique… si quelqu’un voit comment améliorer ? Le site où c’est en place https://www.echecs-occitanie.fr/
Merci
Jacques

Mets ta chaine regexp dans un #SET
Et utilise-la via un #GET

Impeccable ! C’est bien documenté dans #SET et #GET - SPIP mais cet usage m’avait échappé.
J’ai un peu tâtonné sur ou mettre le #SET , tout en haut de squelettes/formulaires/inscription.html ça fonctionne bien.

1 « J'aime »