Fork me on GitHub






CBB - mettre un nombre de caractère minimum
Régulier
Inscrit: 09/06/2006 18:51
Messages: 484
Hello,

je cherche à mettre un nombre minimum de caractères pour l'envoi de messages sur un forum.. Mais je suis larguée complet. J'ai trouvé comment mettre un nombre maxi (finalement pas compliqué avec le système de formulaires de xoops) mais l'inverse, je sèche..

Je suppose que contrairement au nombre de caractère max, il faudra faire la vérification au moment de l'envoi?

Si quelqu'un pouvait m'aider car les formulaires c'est vraiment la galère pour moi :(

Merci d'avance

Posté le : 08/05/2014 20:08
Partager Twitter Partagez cette article sur GG+
Re: CBB - mettre un nombre de caractère minimum
Admin Frxoops
Inscrit: 05/03/2005 05:20
De Vaucluse
Messages: 960
Bonsoir Lou86

Personnellement je réalise cette opération avec un peu de javascript:

1- tu repére dans ton formulaire le nom de celui-ci (ici nomduformulaire):
$form = new XoopsThemeForm(_MD_MONMODULE_DISCLAIMER,"nomduformulaire","create.php?op=save");

2- Tu repères dans le code de ton formulaire l'élément "zone de texte" qui t'intéresse (ici txtname).
$tx = new XoopsFormDhtmlTextArea'','txtname'$tx,15,80);

3- toujours dans le formulaire, tu repére le bouton "submit":
$button=new XoopsFormButton('''save',_MD_MONMODULE_SUBMIT'submit');

et tu lui rajoute l'option "onclick qui te renvoie vers la fonction javascript qui va te servir à tester la longueur du texte avant l'envoi du formulaire:
$button->setExtra("onclick='return TextFormValidate();

4- Il ne te reste plus qu'à écrire la fonction javascript (ici TextFormValidate) qui va bien. L'élément que tu dois tester en javascript devrai être de la forme (pour l'exemple ci-dessus): nomduformulaire.txname.value
PS: Cette fonction doit renvoyer 'true' si ta condition est vraie sinon 'false'

Posté le : 08/05/2014 21:03

Open in new window

Xoops 2.5.7.2 - Debian 8.2 - Apache 2.4.10 - MySQL 5.5.47 - Php 5.6.17
Partager Twitter Partagez cette article sur GG+
Re: CBB - mettre un nombre de caractère minimum
Admin Frxoops
Inscrit: 04/03/2011 09:10
De Lot
Messages: 2837
et si le visiteur à désactivé JavaScript sur son navigateur, il y en a suffisamment ?

Le fait de faire une vérification coté client grâce à JavaScript ne doit pas vous dédouaner de le faire coté "serveur".

Pour le nombre de caractère minimum, une petite fonction PHP
function min($variable){
  
$min 4; (Nb de caractères minimum)
  if(
strlen($variable) < $min){
    return 
false;
  }
  return 
true;
}

Posté le : 08/05/2014 21:36
Partager Twitter Partagez cette article sur GG+
Re: CBB - mettre un nombre de caractère minimum
Admin Frxoops
Inscrit: 05/03/2005 05:20
De Vaucluse
Messages: 960
Merci montuy, ma réponse était en effet incomplète (je réalise systématiquement les deux). Ce sujet m'inspire une question: Faut'il traiter systématiquement la validité de tous les types d'éléments d'un formulaire ou pas ? Ok pour tout ce qui est zone de texte et les fichiers téléchargés cela va de soit mais pour les listes déroulantes, les cases è cocher..etc. ?

Posté le : 08/05/2014 21:49

Open in new window

Xoops 2.5.7.2 - Debian 8.2 - Apache 2.4.10 - MySQL 5.5.47 - Php 5.6.17
Partager Twitter Partagez cette article sur GG+
Re: CBB - mettre un nombre de caractère minimum
Admin Frxoops
Inscrit: 04/03/2011 09:10
De Lot
Messages: 2837
C'est une obligation de tester et de filtrer tous les champs entrant d'un formulaire (listes déroulantes, champs cachés, cases à cocher, etc...).
Je sais, c'est long, mais il faut toujours s'assurer de ce qu'on reçoit via un formulaire (ou tout ce qui vient de l'extérieur comme $_GET, $_COOKIE, etc...).
Cela permettra d'augmenter la sécurité de tes scripts, du moins du côté des failles et de réduire le nombre de bugs "fantômes" ou aléatoires.

Posté le : 08/05/2014 22:03
Partager Twitter Partagez cette article sur GG+
Re: CBB - mettre un nombre de caractère minimum
Régulier
Inscrit: 09/06/2006 18:51
Messages: 484
Merci de vos réponses, je vais creuser tout ça (et effectivement j'avais vu qu'une vérification en js ne suffisait pas )

Par contre pour revenir à la suite de vos réflexions, avec une liste déroulante ou une checkbox, le visiteur ne pourra rien envoyer d'autre que ce qu'on lui propose d'envoyer, non? Donc la sécurité est d'ores et déjà assurée?

Enfin, si il vaut mieux une vérif coté serveur au cas où le js soit désactivé, on peut se passer de la vérif en js?

Posté le : 08/05/2014 22:11
Partager Twitter Partagez cette article sur GG+
Re: CBB - mettre un nombre de caractère minimum
Admin Frxoops
Inscrit: 04/03/2011 09:10
De Lot
Messages: 2837
Citation :

Par contre pour revenir à la suite de vos réflexions, avec une liste déroulante ou une checkbox, le visiteur ne pourra rien envoyer d'autre que ce qu'on lui propose d'envoyer, non? Donc la sécurité est d'ores et déjà assurée?

Là tu te trompe, il est très facile d'utiliser JavaScript (ou les outils de développement des navigateurs) pour simuler la provenance d'un formulaire. Pour exemple, il existe des robots qui s'inscrivent tout seul sur des sites sous Xoops, puis s'activent et finissent par remplir le site de Spam.


Citation :

Enfin, si il vaut mieux une vérif coté serveur au cas où le js soit désactivé, on peut se passer de la vérif en js?

Il faut mieux les deux, une première vérification via JS sur le navigateur du vrai visiteur, ceci évite une surcharge inutile du serveur d'hébergement si il y a une erreur détectable, et surtout il n'y aura pas de délai d'attente pour rien pour le visiteur.
Ensuite par mesure de sécurité, une vérification coté "serveur" car en théorie il traitera directement la demande vu qu'il n'est pas sensé avoir d'erreur.

Posté le : 08/05/2014 22:30
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

102 Personne(s) en ligne (74 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 102 | Plus ...