![]() |
Lectura de teclado sin campo de texto
Hola, es la primera vez que me hago presente en este foro de PHP.
Quisiéramos hacer una autenticación mediante lector de tarjeta con banda magnética. La cuestión sería que el usuario debería introducir su id y contraseña y saldría una ventana que diría "Pase su tarjeta por el lector". Estas tarjetas y el lector aún no las tenemos, ya que estamos primero valorando si es viable económicamente. Al igual que los lectores de barra,funcionan como emulación de teclado, es decir, al pasar la tarjeta por el lector aparecería la clave (pensamos en SHA-1) tipo 0091ab8ddc7...... , la cuestión estética hace que el usuario no vea este chorizo, pero que yo sí pueda captar esta secuencia como si la hubiese tecleado, para así hacer la comprobación de ambas cadenas y ver que coinciden. ¿Me he hecho un lío? Bueno, ¿sabéis cómo capturar el teclado sin usar un campo? Gracias de antemano. Floren |
Para eso tienes los eventos OnKeyDown /OnKeyUp / OnKeyPress de cualquier form, segun los componentes visuales que uses en el form podria ser necesario que activases la propiedad "KeyPreview", esto asegura que todas las pulsaciones se envien antes al form, y no directamente al componente que tenga el foco en ese momento.
Saludos |
Hola
Tambien podrías utilizar un campo tipo "password" se ver pero no es legible por el usuario. Otra opción, que no he probado, es utilizar estilos para hacer un campo invisible, lo que no se es si un campo con este estilo puede recibir el foco de la acción, todo es probar. |
Hola, gracias por vuestras respuesta:
Mick, tú me hablas de Delphi y yo me refiero a PHP (no me he equivocado de sitio, no?) Kayetano, comentas algo que no sé implementar, la verdad. Existe una opción en javascript: Código:
Por eso lo de PHP y la captura "silenciosa" del teclado. Gracias! Seguuuuimos buscando |
Ejemplo 1:
Con este ejemplo creo un campo tipo password donde no se ve lo que se escribe, una vez se manda el formulario "seguridad.php" se encarga de la comprobacion. Nada mas acceder a es al formulario me situo en el capo dato. prueba.php Código PHP:
Ejemplo 2: Con este ejemplo creo un campo tipo texto y con estilo invisible con lo que no se ve el contenido ni el continente. una vez se manda el formulario "seguridad.php" se encarga de la comprobacion. Nada mas acceder a es al formulario me situo en el capo dato. prueba2.php Código PHP:
seguridad.php Código PHP:
|
Podes extraer de este código en javascript solamente la parte que captura el teclado, y hacer que se vaya asignando a un elemento oculto de un formulario, y luego enviarlo con el método post, asi podas comparar en el servidor, via php, si la clave es la correcta.
Me parece la mejor solución. Hasta luego. ;) |
Hola
Algo asin: Código PHP:
|
Has podido detectar cual es el problema con firefox?
Quizas es el uso the this.form Creo que podria funcionar si se le da un id nombre al formulario, y se accede a él por id? Hasta luego. ;) |
¡Hola y gracias por vuestra ayuda! :p
Kayetano, la última opción casi sería la que necesitamos; la única dificultad con ese código es que precisamente captura todas las pulsaciones de teclado, incluidas claro el id_usuario y psw. Así que ahí estoy dándole vueltas ya que tal vez la de campo oculto que proponías al principio me solucione mucho, al no tener a priori los campos id y psw una longitud fija. Sobre el tema del navegador no es dificultad ya que estamos en intranet, donde las configuraciones de equipos y navegadores usados son bien conocidas. Gracias de nuevo y saludos. Floren :) |
Hola
x jachguate No creo que sea cosa del "this.form" yo lo utilizo mucho y nunca me ha dado problemas con firefox. Por las pruebas que puede hacer me da que es cosa del evento "onkeypress". x floren Pues nada ahora te toca decidir a ti y comerte el tarro para dar solución a tu problema. |
La franja horaria es GMT +2. Ahora son las 17:48:40. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi