France Hardware : Forums de discussion - Découvrez notre nouveau comparateur d'offres Internet
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
29 582 membres enregistrés - 2 069 993 posts - 122 247 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           [javascript] pseudo keylogger pour controle sur champs numérique seulement... HEEEEEEELLLLLPPPPP
107 connectés(record : 2799 le 29 May 2016 - 15 h 34)

Vous devez vous connecter pour répondre au topic.
[javascript] pseudo keylogger pour controle sur champs numérique seulement... HEEEEEEELLLLLPPPPP

grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 12 June 2006 - 17 h 01 m 24 s
hello,

bon j'ai un problème à la noix que je n'arrive pas à résoudre.
J'ai un champs texte qui fait max 3 caractères ; c'est la 1ère partie d'un numéro RCS (registre du commerce) qui normalement fait 3x3 caractères sous la forme xxx yyy zzz
Ce que je voudrais c'est qu'au lieu de soumettre le form et afficher qu'il y a une erreur dans la saisie d'un des triplets si l'utilisateur tape un caractère non conforme (une lettre par exemple), l'utilisateur ne puisse que taper des chiffres. J'ai donc fait la chose suivante sur mon champs :

    Code html    
1. <input type="text" class="champ_onglets" name="cli_rcsnum1" style="width: 30px;" maxlength="3" onKeyPress="if (event.keyCode < 48 || event.keyCode > 57) event.returnValue = false; if (event.which < 48 || event.which > 57) return false;" />
ca ca marche... par contre, le problème que j'ai est que du coup, comme je n'autorise que la saisie de chiffres, je ne peux plus corriger la valeur en cas d'erreur... J'ai donc du ajouter des caractères autorisés comme : delete, space, backspace. il faudrait pour bien faire ajouter aussi les flèches... bref, ca donne :
    Code html    
1. <input type="text" class="champ_onglets" name="cli_rcsnum1" style="width: 30px;" maxlength="3" onKeyPress="if ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 127 && event.keyCode != 8 && event.keycode != 32) event.returnValue = false; if ((event.which < 48 || event.which > 57) && event.which != 127 && event.which != 8 && event.which != 32) return false;" />
et ben croyez moi si vous voulez, mais autant le space fonctionne ainsi que le backspace, mais impossible de faire passer le delete ! Je ne sais pas pourquoi. J'ai testé en passant les valeurs en décimal et en hexadécimal, même résultat, cela ne fonctionne pas :@ Comme je voulais pas m'avouer vaincu, je me suis fait un mini keylogger sur une page externe que voila :
    Code html    
 1. <html>
 2.   <head>
 3.     <title>KEYLOGGER</title>
 4.   </head>
 5. 	
 6.   <body>
 7. 	
 8.     <form method="post">
 9. 		
10.       <input type="text" size="10" onKeyPress="if (event.keyCode) alert(event.keyCode); if (event.which) alert(event.which);" />
11. 			
12.     </form>
13. 		
14.   </body>
15. 	
16. </html>


Si vous copiez ca dans une page html vide et que vous l'ouvrez, vous verrez que chaque caractère tapé dans la box renvoit un alert avec la valeur de la touche en décimal.

Seulement ca me sert pour le space (32), mais ni le backspace ni le del ne renvoient de valeur... pas facile...

Ensuite, je suis allé chercher une bonne vieille table ascii pour balancer direct les correspondances : http://www.tableascii.com/

del = 127
space = 32
backspace = 8

ma question est donc la suivante : POURQUOI CE FOUTU DEL NE PASSE PAS ???????

ou peut etre y'a t'il un autre caractere pour le DEL, je sais pas.

quelqu'un a une idée ???

Merci d'avance,

Oliv



:firefox: :ol:

bernie38
Waldorf (le pote à Statler)

Messages : 11 452
Inscrit le 28/08/03
Ville : Claix
Non connecté
  Posté le 12 June 2006 - 17 h 33 m 31 s
je crois que c'est parce que les touches "spéciales" (delete, backspace, etc) ne sont pas envoyées par le micro-controleur du clavier comme des caractères, et donc ton code qui essaie d'intercepter des caractères ne les voit pas. Mais à confirmer...



La Montagne n'est pas dangereuse : on ne peut qu'y perdre la vie, tandis qu'en ville on devient bête et méchant
Voltaire


grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 12 June 2006 - 17 h 38 m 06 s
c'est ce que je me disais aussi jusqu'a ce que j'arrive a "chopper" le backspace, aussi je doute completement maintenant...

d'autre part, si ces caracteres ne sont pas envoyes, comment expliquer qu'ils soient bloques lorsque l'on ne donne qu'une partie des codes ascii comme etant valides (les chiffres dasn mon 1er exemple), tu vois ce que je veux dire ? du coup, je me demande si le del se cache pas sous un autre caractere a la noix...



:firefox: :ol:

bernie38
Waldorf (le pote à Statler)

Messages : 11 452
Inscrit le 28/08/03
Ville : Claix
Non connecté
  Posté le 12 June 2006 - 17 h 53 m 11 s
il y a longtemps j'avais essayé de le faire (en C ou C++ je me souviens plus) et j'avais lamentablement échoué. Parce que je crois bien que c'est des signaux spéciaux envoyés par le micro-controleur du clavier. Et du coup j'avais laissé tomber...

EDIT : un peu pareil pour les touches de fonction, essaie, pour voir le désastre :(
Je pense qu'il faut une API spécialisée pour les intercepter correctement.


Message édité 1 fois, la dernière par bernie38 le 12 June 2006 - 17 h 58.

La Montagne n'est pas dangereuse : on ne peut qu'y perdre la vie, tandis qu'en ville on devient bête et méchant
Voltaire


Erel69
- Ancien Modérateur -
Fantôme
Officiel

Messages : 19 554
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 12 June 2006 - 17 h 57 m 34 s
Perso, j'accepte tous les caractères mais je supprime ceux qui ne sont pas des chiffres dans l'input.




grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 12 June 2006 - 20 h 51 m 50 s


Le 12 juin 2006 - 17 h 57, Erel69 a écrit :
Perso, j'accepte tous les caractères mais je supprime ceux qui ne sont pas des chiffres dans l'input.


tu fais comment ? un ereg en js ?



:firefox: :ol:

Erel69
- Ancien Modérateur -
Fantôme
Officiel

Messages : 19 554
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 12 June 2006 - 22 h 03 m 53 s
oui




grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 13 June 2006 - 08 h 25 m 12 s
dans ce cas ca suppose l'envoi du form avant pour controle ulterieur non ? moi en fait ce que je voudrais c'est eviter ce genre de manip et filtrer à l'entrée...



:firefox: :ol:

Erel69
- Ancien Modérateur -
Fantôme
Officiel

Messages : 19 554
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 13 June 2006 - 09 h 10 m 06 s
euh et pourquoi l'utilisation d'une regexp suppose l'envoi du form pour contrôle ultérieur ???

tu peux très bien faire une fonction de vérif à la volée vu que c'est en js




grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 13 June 2006 - 09 h 26 m 36 s
juste...
je vais tenter...



:firefox: :ol:

Erel69
- Ancien Modérateur -
Fantôme
Officiel

Messages : 19 554
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 13 June 2006 - 10 h 56 m 54 s
Ca fonctionne très bien pour moi en tout cas :)




grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 13 June 2006 - 11 h 13 m 49 s
bon c bon, j'ai mis en place les regexp, par contre, j'ai fait ca sur un onblur afin de tester tout le champ et pas caractere par caractere... j'aime moins mais bon... jvais essayer via keypressed...



:firefox: :ol:

Erel69
- Ancien Modérateur -
Fantôme
Officiel

Messages : 19 554
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 13 June 2006 - 12 h 28 m 52 s
je le met sur onkeyup moi




grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 13 June 2006 - 13 h 18 m 07 s
vais tester ca cet aprem :)



:firefox: :ol:

Page genérée en 0.1803 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL | Actualité ADSL | Deligo | Appareil photo | Commande Au Volant
Creative Commons
Message Boards and Forums Directory