Remplissage des caractères avec la barre d'espace

Forums consacré à la conception de site web : W3C (HTML, CSS, XML, XSL etc.), langages de programmation (PHP, JavaScript, etc.), bases de données (MYSLQ ..), scripts, outils de développement.

Modérateur: Modérateurs

Remplissage des caractères avec la barre d'espace

Messagede landry » Ven Avr 15, 2011 5:28 am

Bonjour,

J'ai un formulaire sur lequel j'exige un champs d'au moins 400 caractères.
Certain malins comblent ce champs avec un appuie long sur la barre d'espace.
J'ai cherché sur le net un script qui détecterait l'usage de la barre d'espace de façon continue mais je n'ai pas trouvé, y a t'il un moyen d'éciter cela ?

Le script actuel :

Code: Tout sélectionner
<script type="text/javascript">
   function CheckLen(Target, InfoReste, InfoOblige, Min, Max)
   {
      var StrLen = Target.value.length;
      var CharsLeft = Max;
      var CharsMust =  Min;
      if ( StrLen>900 ) {
         Target.value = Target.value.substring(0,Max);
         CharsLeft = 0;
         CharsMust = 0;
      } else {
         CharsLeft = (CharsLeft - StrLen);
         CharsMust = (StrLen<CharsMust) ? (CharsMust - StrLen) : 0;
      }
      InfoReste.value = CharsLeft;
      InfoOblige.value = CharsMust;
   }
</script>


Dans la page :

Code: Tout sélectionner
<textarea name="description" cols=50 rows=5 class="descr_add_site_annuaire" onKeyDown="CheckLen(this, document.form2submit.reste, document.form2submit.oblige, 400, 999)" onKeyUp="CheckLen(this, document.form2submit.reste, document.form2submit.oblige, 400, 999)"><?php echo htmlspecialchars($description) ?></textarea>
La cuisine, c'est facile : http://www.ceinfo.fr
Et l'informatique aussi : http://www.micro-astuce.com
landry
PR3
PR3
 
Messages: 323
Inscription: Mer Sep 06, 2006 8:44 am
Localisation: Carcassonne (France)

Publicité

Re: Remplissage des caractères avec la barre d'espace

Messagede gowap » Ven Avr 15, 2011 8:46 am

Il n'y a pas de validation coté serveur ? que des vérifs coté client avec du javascript ? Dans ce cas, quelqu'un de déterminé, pourra toujours soumettre ce qu'il veut/n'importe quoi (et même aller au delà de la limite des 900 caractères de ton script).

Une solution, lors de chaque frappe, c'est de remplacer une suite de 2 espaces par un seul.

avant
Code: Tout sélectionner
var StrLen = Target.value.length;

rajoutes
Code: Tout sélectionner
Target.value = Target.value.replace("  "," ");
Gravure-News : la communauté francophone de la gravure de CD/DVD et son forum d'entraide.
Avatar de l’utilisateur
gowap
phpBB SEO Team
phpBB SEO Team
 
Messages: 1510
Inscription: Dim Mai 07, 2006 10:56 pm

Re: Remplissage des caractères avec la barre d'espace

Messagede landry » Ven Avr 15, 2011 9:12 am

Merci parfait !
Tant qu'on y est, peut-on désactiver le "coller" aussi ?
Certains copient la première phrase et la colle autant de fois que necéssaire pour arriver aux 400 caractères.

(et même aller au delà de la limite des 900 caractères de ton script).

Comment peut-il faire cela ? :o
La cuisine, c'est facile : http://www.ceinfo.fr
Et l'informatique aussi : http://www.micro-astuce.com
landry
PR3
PR3
 
Messages: 323
Inscription: Mer Sep 06, 2006 8:44 am
Localisation: Carcassonne (France)

Re: Remplissage des caractères avec la barre d'espace

Messagede gowap » Sam Avr 16, 2011 2:49 pm

landry a écrit:Tant qu'on y est, peut-on désactiver le "coller" aussi ?
Certains copient la première phrase et la colle autant de fois que necéssaire pour arriver aux 400 caractères.

La ca devient nettement moins trivial.

Comment peut-il faire cela ? :o

Un formulaire ce n'est rien d'autre qu'un ensemble de paires clé/valeur qui sont envoyées a une page par le navigateur lorsque que tu cliques sur le bouton de soumission. Via des extensions du navigateur, tu peux faire des requetes http, sans avoir interagi "vraiment" avec le formulaire de la page et donc sans etre passé par les vérifications javascript, en envoyant toutes les données bidouillées que tu veux.
C'est pour ca que la validation coté client (navigateur) ne suffit pas, qu'il faut aussi implémenter des vérifs coté serveur. Selon l'adage bien connu "never trust user input". Toutes les données reçues peuvent avoir été "forgées".

extensions firefox :
Poster : https://addons.mozilla.org/en-US/firefox/addon/poster/
tamper Data : https://addons.mozilla.org/en-US/firefo ... mper-data/
Gravure-News : la communauté francophone de la gravure de CD/DVD et son forum d'entraide.
Avatar de l’utilisateur
gowap
phpBB SEO Team
phpBB SEO Team
 
Messages: 1510
Inscription: Dim Mai 07, 2006 10:56 pm

Re: Remplissage des caractères avec la barre d'espace

Messagede landry » Sam Avr 16, 2011 7:13 pm

La ca devient nettement moins trivial.

Oui t'as raison, puis je le vois lors de l'admission du site.

Pour la barre espace c'est bon, mais maintenant y'en a un qui vient de se servir de la touche entrée !!! :roll:
On peut bloquer ça aussi ?
La cuisine, c'est facile : http://www.ceinfo.fr
Et l'informatique aussi : http://www.micro-astuce.com
landry
PR3
PR3
 
Messages: 323
Inscription: Mer Sep 06, 2006 8:44 am
Localisation: Carcassonne (France)

Re: Remplissage des caractères avec la barre d'espace

Messagede gowap » Sam Avr 16, 2011 8:00 pm

Rajoutes
Code: Tout sélectionner
Target.value = Target.value.replace("/(\r\n|\r|\n)$/","");

Après la ligne que je t'ai déja donné.

Ceci dit, je veux pas être méchant, mais si tous les boeufs qui soumettent un site (a ce que j'ai compris) ne sont pas foutus de fournir une description de 400 caractères et passent leur temps a faire les cons dans le formulaire, moi, a force, je me ferai pas chier, j'enverrai promener direct et je laisserai tomber la soumission.
Si quelqu'un n'est pas en mesure de faire cet effort minime, il n'a a mon sens, rien d'intéressant a proposer et c'est simplement faire oeuvre de salubrité publique que de ne pas référencer les sites de ces individus.
Gravure-News : la communauté francophone de la gravure de CD/DVD et son forum d'entraide.
Avatar de l’utilisateur
gowap
phpBB SEO Team
phpBB SEO Team
 
Messages: 1510
Inscription: Dim Mai 07, 2006 10:56 pm

Re: Remplissage des caractères avec la barre d'espace

Messagede landry » Dim Avr 17, 2011 6:31 am

Ca marche pas, la touche entrée fonctionne encore quand on garde le doigt enfoncé dessus.

Ceci dit, je veux pas être méchant, mais si tous les boeufs qui soumettent un site (a ce que j'ai compris) ne sont pas foutus de fournir une description de 400 caractères et passent leur temps a faire les cons dans le formulaire, moi, a force, je me ferai pas chier, j'enverrai promener direct et je laisserai tomber la soumission.
Si quelqu'un n'est pas en mesure de faire cet effort minime, il n'a a mon sens, rien d'intéressant a proposer et c'est simplement faire oeuvre de salubrité publique que de ne pas référencer les sites de ces individus.


C'est ce que nous faisons, on les vire.
Seulement au moment où nous recevons le mail annonçant l'arrivée de sites dans l'annuaire on ne sait pas sur quoi on va tomber. Et finalement on perd du temps à se connecter à l'admin de l'annuaire pour trouver 1 site valable et 3 ou 4 débiles qui ne comprennent pas que la description longue et que la meta descripion sont ce qu'il y a de plus important. Ce sont des gros nases qui s'inscrivent dans un maximium d'annuaires sans même savoir pourquoi ils le font.
La cuisine, c'est facile : http://www.ceinfo.fr
Et l'informatique aussi : http://www.micro-astuce.com
landry
PR3
PR3
 
Messages: 323
Inscription: Mer Sep 06, 2006 8:44 am
Localisation: Carcassonne (France)

Re: Remplissage des caractères avec la barre d'espace

Messagede dcz » Dim Avr 17, 2011 1:14 pm

Code: Tout sélectionner
Target.value = Target.value.replace(/(\n|\r)/g,"");


?
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21407
Inscription: Ven Avr 28, 2006 9:03 pm

Re: Remplissage des caractères avec la barre d'espace

Messagede landry » Dim Avr 17, 2011 1:46 pm

?


Vi !! :D

Merci à vous 2. :wink:
La cuisine, c'est facile : http://www.ceinfo.fr
Et l'informatique aussi : http://www.micro-astuce.com
landry
PR3
PR3
 
Messages: 323
Inscription: Mer Sep 06, 2006 8:44 am
Localisation: Carcassonne (France)

Re: Remplissage des caractères avec la barre d'espace

Messagede gowap » Dim Avr 17, 2011 2:14 pm

Je pense que c'est un peu violent vu qu'a priori ca ne permet plus aucun retour ligne du tout. Si quelqu'un veut un tant soit peu aérer son texte, il risque d'etre surpris d'etre obligé de taper au kilomètre comme dans un SMS.
Du coup, je propose un
Code: Tout sélectionner
Target.value = Target.value.replace(/(\r\n|\n|\r){3,}/,"");

qui empêche plus de 3 retours charriot consécutifs.
Gravure-News : la communauté francophone de la gravure de CD/DVD et son forum d'entraide.
Avatar de l’utilisateur
gowap
phpBB SEO Team
phpBB SEO Team
 
Messages: 1510
Inscription: Dim Mai 07, 2006 10:56 pm

Re: Remplissage des caractères avec la barre d'espace

Messagede dcz » Dim Avr 17, 2011 2:38 pm

Code: Tout sélectionner
Target.value = Target.value.replace(/(\r\n|\n|\r){3,}/g,"");

Avec l'option g pour remplacements multiples non ?
Voir passer par un tite normalisation pour ne pas compter \r\n comme deux saut de ligne :
Code: Tout sélectionner
Target.value = Target.value.replace(/(\r\n|\r)/g,"\n").replace(/(\n){3,}/g,"");


++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21407
Inscription: Ven Avr 28, 2006 9:03 pm

Re: Remplissage des caractères avec la barre d'espace

Messagede landry » Lun Avr 18, 2011 7:46 am

Merci, c'est parfait ! :D
La cuisine, c'est facile : http://www.ceinfo.fr
Et l'informatique aussi : http://www.micro-astuce.com
landry
PR3
PR3
 
Messages: 323
Inscription: Mer Sep 06, 2006 8:44 am
Localisation: Carcassonne (France)

Re: Remplissage des caractères avec la barre d'espace

Messagede gowap » Lun Avr 18, 2011 8:48 pm

dcz a écrit:Avec l'option g pour remplacements multiples non ?

Comme la fonction est appelée a chaque frappe de touche, il ne pourra pas y avoir plusieurs occurrences a remplacer, au pire il y en a une a traiter.
Après, je me suis dit que le seul cas de figure ou ça peut arriver c'est si la personne prépare son texte ailleurs que dans le navigateur, fait des retours charriot a gogo et colle ensuite le tout dans la textarea.
Je viens d'essayer, et je comprends pas : même sans /g toutes les occurrences sont corrigées.
Gravure-News : la communauté francophone de la gravure de CD/DVD et son forum d'entraide.
Avatar de l’utilisateur
gowap
phpBB SEO Team
phpBB SEO Team
 
Messages: 1510
Inscription: Dim Mai 07, 2006 10:56 pm

Re: Remplissage des caractères avec la barre d'espace

Messagede dcz » Mar Avr 19, 2011 8:06 am

J'ai rien testé pour ma part, c'était juste une suggestion de "principe" ;)
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21407
Inscription: Ven Avr 28, 2006 9:03 pm


Retourner vers Développement de site

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités