El motivo de este post es para presentar una clase que ayuda al procesamiento de formularios en PHP (también estará la versión Java) teniendo en cuenta su facilidad de uso (como jQuery Validate).

Para descargarlo acá tienen el desarrollo (y el ejemplo): FormValidate.

Configuración

Para tener una forma de hacer cambios rápidos sin tener que hacer modificaciones en el código se usa un archivo ini, en la que para cada campo a considerar se define una sección y sus atributos a validar, por ejemplo:

;ESTE ARCHIVO ES UN EJEMPLO PARA PHPTools -> FomrValidate

;Campo para evitar los robots
[f0]
type=security

;Campo de tipo númerico
[f1]
type=number
min=5
required=true

;Campo de tipo mail
[f2]
type=mail

;Campo que requiere una expresión regular
[f3]
type=regex
regexstr="/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i"
max=100
required=true

;Campo con un tamaño mínimo de 20 caracteres
[f4]
min=20

donde:

  • f0: se usa para evitar robots, si el campo llega con información, se debe desechar la información.
  • f1: se valida que sea un número mayor o igual a 5 y siempre debe tener información.
  • f2: se valida que sea un correo electrónico válido.
  • f3: se valida que cumpla con la expresión regular (regexstr) usando la función PHP preg_match, con un máximo de 100 caracteres y siempre debe tener información.
  • f4: se valida que el tamaño mínimo sea de 20 caracteres.

Uso

Ahora para poder validar los datos enviados al servidor, vamos a hacer uso de este script:

<?php
include "PHPTools/FormValidate.php";

$form = new FormValidate(array(
                'get' => true,
                'path' => 'properties',
                'ini' => 'form'
));
// limpiar entrada
$form->escape();
// validar
$form->validate();
?>

En la descarga de FormValidate el ejemplo muestra el arreglo antes de ser validado y después (que agrega mensajes de error y llena el arreglo de errores en caso de existir).

Especificaciones

Estos son los valores de los parámetros usados para la configuración:

  • required: determina si el campo es necesario.
  • type: especifica como se tiene que validar el dato. Sólo se pueden usar security, number, mail y regex.
  • max: Tamaño/valor máximo del campo; si es number se compara directamente, en otro caso se compara el tamaño de la cadena.
  • min: Tamaño/valor mínimodel campo; si es number se compara directamente, en otro caso se compara el tamaño de la cadena.
  • regexstr: Cadena con la expresión regular (se usa la función preg_match), debe de ir entre comillas.

Estos son los valores de los parámetros para  el uso de la clase FormValidate

  • get: con el valor true determina si se va a procesar los valores de $_GET, si no se define usa los valores de $_POST
  • path: determina el path donde se encuentra el archivo ini
  • ini: el nombre del archivo ini. También se puede definir un array con las propiedades y así evitar el uso del archivo ini.

TODO

Estas son algúnas tareas que faltan en este desarrollo:

  • Agregar tipos de datos especiales (por ejemplo: fecha).
  • Cambiar el parámetro para la clase FormValidate para usar $_GET.
  • Hacer más flexible el sistema de mensajes de error.
  • Dependencia entre campos.

Licencia

Este clase tiene la licencia MIT.

Anuncios