France Hardware : Forums de discussion
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
22 730 membres enregistrés - 1 886 889 posts - 96 484 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           Langages Web
                [javascript] pseudo keylogger pour controle sur champs numérique seulement... HEEEEEEELLLLLPPPPP
21 connectés(record : 207 le 05 juin 2007 - 05 h 23)

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

grabber
Coordinateur
MacBook Pro 2,4 Powered

Messages : 8 556
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 12 juin 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:

bernie38
Waldorf (le pote à Statler)

Messages : 11 419
Inscrit le 28/08/03
Ville : Claix
Non connecté
  Posté le 12 juin 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 2,4 Powered

Messages : 8 556
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 12 juin 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:

bernie38
Waldorf (le pote à Statler)

Messages : 11 419
Inscrit le 28/08/03
Ville : Claix
Non connecté
  Posté le 12 juin 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 juin 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
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 12 juin 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.



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

grabber
Coordinateur
MacBook Pro 2,4 Powered

Messages : 8 556
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 12 juin 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:

Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

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



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

grabber
Coordinateur
MacBook Pro 2,4 Powered

Messages : 8 556
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 13 juin 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:

Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 13 juin 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



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

grabber
Coordinateur
MacBook Pro 2,4 Powered

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



:firefox:

Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

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



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

grabber
Coordinateur
MacBook Pro 2,4 Powered

Messages : 8 556
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 13 juin 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:

Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

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



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

grabber
Coordinateur
MacBook Pro 2,4 Powered

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



:firefox:

Page genérée en 0.5430 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 | e-commerce | Commande Au Volant
Creative Commons
Message Boards and Forums Directory