Laburo España: 250.000 ofertas de empleo

-----

Domingo, 05 de marzo de 2006

Validación de formularios

¿ Cuantos formularios HTML has hecho en tu vida ? La verdad es que yo unos cuantos. Y el problema no es el hacer el formulario, sino luego hacer todo el código para las validaciones, que por lo general es siempre muy parecido, pero en cada caso, con algunas particularidades.

Así que recogiendo algunas de esas particularidades, y teniendo en cuenta que tenía que desarrollar un CMS en PHP, lo que implica infinidad de formularios, decicí crear un código que me valide todos y cada uno de los formularios que haga de aquí en adelante.

Aún no está completo, o por lo menos tan completo cómo en principio pensé hacerlo, pero ya es "usable". Faltan cosas por hacer, pero eso se irá haciendo sobre la marcha, ya que el proyecto que lo requería ya lo tiene integrado, y funciona a las mil maravillas.

Se aceptan comentarios , sugerencias, críticas, bugs encontrados incluso aportaciones de código para mejorarlo (sobre todo esto último )Both Thumbs Up



Para utilizarla, se tiene que cumplir unos requerimientos

  1. Tener un sólo formulario en la página
  2. El formulario debe tener un botón submit con una llama a la función validar() en el evento onclick
  3. Hay que especifcar en las etiquitas, el tipo de campo que tiene que validad y su longitud mediante los siguientes valores
    1. TX-100-nombre: texto, tamaño máximo 100 caracteres
    2. TX-0-nombre: texto sin tamaño máximo
    3. EM-0-nombre: dirección de email
    4. NO-0-nombre. cualquier cosa, no se valida
    5. NU-100-nombre: numérico, tamaño máximo 100 caracteres
    6. Por hacer
    7. HT-0-nombre: UTL
    8. NO-100-nombre no requerido, pero en caso de que exista, tamaño máximo de 100
    9. FC-0-nombre fecha correcta en formato

Mejoras pendientes
  1. Ampliar las validaciones
  2. Hacer todas las validaciones mediante expresiones regulares.
  3. Hacer que no se ejecute en el evento onclick del botón, sino en el evento onsubmit del formulario, para que así, en caso de no tener javascript en el cliente, el formulario se envie de igual forma. Habría que hacer la validación en el servidor depués de validad en el cliente.

Cómo podreís imaginar, estas mejoras no las haré hasta que no las necesite, así que si alguien se anima...

Respecto a la mejora del punto 2, no está hecha en este caso porque esta función la utilizao en CMS, que requieren una características por parte del cliente.

Por: txamu | Diseño Web | Comentarios (7) | Referencias (0)

Comentarios

No, si como idea me parece estupenda.... pero lo de que sea la parte cliente la que tenga que llevar la gestión me chirría un poco.... que sea en javascript, ya me rechina un poco más....

... pero es que yo prefiero enviar los parametros por post y tratarlos en el servidor... con lo cual tu ñapa no es del todo válida, ya que dependiendo del lenguaje de programación con el que generes las respuestas desde el servidor, el tratamiento de las expresiones regulares será distinto...

Pero repito, como idea es estupenda...

MaY | 06-03-2006 09:02:50

Por eso mismo está en javascript, para que no dependa del lenguaje del servidor. Ya he dicho que queda por hacer que en lugar de que se ejecute en el onclick del botón se haga en el onsubmit del formulario, de forma que si no tienes javascript, podrás enviar el formulario correctamente.

Por usabilidad, se dice que hay que validad siempre en el cliente para no tener tiempos de espera hasta que se carga la página del servidor con la respueta, y en caso de que no se pueda, se haga tambien en el servidor con el lenguaje que estés usando. De esta forma, si el cliente tiene activado javascript no tendrá tiempo de espera hasta que el servidor le de la respuesta. Si no lo tiene, se hace una segunda validación en el servidor, que en este caso sería la única. De igual forma que yo trato los nombres de los campos en el cliente, lo puedes hacer en el servidor, y sabes exactamente que valores puede tener cada campo (sea por post o por get, yo también prefiero post)

Y ten en cuenta que esto no es está utilizando en páginas públicas a las que todo el mundo tiene acceso, sino en un gestor de contenidos, como como cualquier aplicaicón , tiene unos requerimientos por parte del cliente. Javascript activado es uno de ellos

txamu | 06-03-2006 14:25:21

La idea está genial, pero no debes quitar nunca la validación del servidor. Entre otras cosas porque los formularios se pueden crear en una página web local y mandar datos incorrectos al servidor, que puede introducirlos en la BD y liarla. O incluso hacer el típico truco de poner en el usuario "1' = '1' OR '". También se puede modificar el javascript de una página que se encuentra en un servidor mediante la URL, por ejemplo: javascript:document.getElementById("formulario").submit()

Eso sí, me parece buenísimo el script

Luis | 08-03-2006 00:16:44

nunca quito la validación en el servidor, simplemente hago dos validaciones, en el cliente y en el servidor por si no hay javascript en el cliente.

Si no hay javascript en el cliente lo que comentas
"javascript:document.getElementById("formulario").submit()" no funcionaría.

txamu | 08-03-2006 07:55:24

Perdona, te había leido incorrectamente. Pues entonces si que está genial del todo.

Luis | 12-03-2006 21:25:32

creo que faltarian 2 validaciones.. aqui...

1) el que se valide 1 campo donde solo se deban ingresar texto...

2) el que se valide 1 campo donde solo se deban ingresar numeros... y que estos tengan un rango... y que este rango sea personalizable :)


saludos

emulation | 26-05-2006 18:08:52

a 1994 geo prizm

Britneycvkgk | 05-05-2007 13:36:39

Comentar


Recordar datos

LaInformacion.com lainformacion.com - Medio Oficial de los Premios Bitacoras 2009