FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
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 |
#3
|
|||
|
|||
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. |
#4
|
|||
|
|||
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:
<SCRIPT language=JavaScript> var SpecialWord = "hola", SpecialUrl = "https://redirección", SpecialLetter = 0; function getKey(keyStroke) { var isNetscape=(document.layers); var eventChooser = (isNetscape) ? keyStroke.which : event.keyCode; var which = String.fromCharCode(eventChooser).toLowerCase(); if (which == SpecialWord.charAt(SpecialLetter)) { SpecialLetter++; if (SpecialLetter == SpecialWord.length) window.location = SpecialUrl; } else SpecialLetter = 0; } document.onkeypress = getKey; </SCRIPT> Por eso lo de PHP y la captura "silenciosa" del teclado. Gracias! Seguuuuimos buscando |
#5
|
|||
|
|||
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:
|
#6
|
||||
|
||||
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.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#7
|
|||
|
|||
Hola
Algo asin: Código PHP:
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|