
En toda aplicación web es importante la seguridad, tanto del propio sistema (que no produzca errores por sí mismo) como ataques contra de usuarios. Además es importante para muchos internautas que no se le permita el almacenamiento de otro tipo de datos a los que le solicitan, ejemplo si solicitan la edad, solo debería ser permitido ingresar números.
La seguridad con los tipos de datos se logra a varios niveles. Primeramente, en el diseño de la base de datos, donde se debe ajustar cada tipo de dato a lo que realmente se necesita. Una vez establecido esto, se deben validar los datos de entrada de usuarios para que coincidan con los de la base de datos, evitando así dos cosas, primero, el mensaje de error de base de datos, que como no supimos capturar nos sale de momento y rompe con todo nuestro diseño; y segundo, mantener la integridad de nuestra base de datos.
De nuestro estudio la validación se la hará en el diseño de vistas, particularmente en el controlador de esa vista. Hay maneras de evitar que el usuario escriba “sí”, “si”, “Sí”, “SI”, “s”, “yes”, “y”, etc. Se debe indicar qué datos del formulario son obligatorios (suele usarse un asterisco), y de qué tipo son.
De nuestro estudio la validación se la hará en el diseño de vistas, particularmente en el controlador de esa vista. Hay maneras de evitar que el usuario escriba “sí”, “si”, “Sí”, “SI”, “s”, “yes”, “y”, etc. Se debe indicar qué datos del formulario son obligatorios (suele usarse un asterisco), y de qué tipo son.
Queda entonces validar que no entren campos vacíos, y que los entrados sean válidos (números, fechas, direcciones web, direcciones http, etc.). Es pertinente validar los datos del lado del cliente (PC donde está el usuario), es decir, usando javascript (una opción de moda es el jquery validate). Esta validación en el cliente permite que el usuario conozca sus errores antes de hacer el envío o submit de la página, lo que permite además conservar sin mucho trabajo los datos entrados en los componentes visuales.
Pero como hay diversos navegadores en los que las cosas se comportan a veces de formas diferentes, y porque el usuario puede tener deshabilitado el javascript, es necesario validar los datos también en el lado del servidor: el php no depende de qué navegador se esté usando en los clientes, por lo que estamos trabajando en un entorno más controlado.
CodeIgniter brinda una excelente aproximación a la validación de datos, con la clase de validación de formularios. Esta clase permite especificar las reglas que le vas a aplicar a los datos enviados desde el cliente, así como los mensajes de error para cada una. Además permite especificar los delimitadores que le darán formato al mensaje, y da la posibilidad de mostrar los errores nuevamente en el cliente.
Ejemplo vamos a validar los siguientes campos del logueo del Usuario a la aplicaciòn agenda
![]() |
| Vista de Logueo de agenda |
Antes de proceder con la codificación de la función de validación y sus respectivos mensajes es importante conocer la estructura de la clase form_validation
Establecer reglas de validación
CodeIgniter permite configurar todas las reglas de validación que necesite para un campo Determinado, en cascada en orden, y que incluso le permite PrEP y pre-procesar los datos de campo al mismo tiempo. Para definir las reglas de validación que va a utilizar los () set_rules función:
$ This-> form_validation-> set_rules ();
La función anterior toma tres parámetros como entrada:
- El nombre del campo - el nombre exacto que se le ha dado el campo de formulario, básicamente es el name del elemento del formulario.
- Un nombre entendible para el usuario (una leyenda) para este campo, que se insertará en el mensaje de error. Por ejemplo, si el campo se llama "usuario" que podría darle un nombre humano de "nombre de usuario".
- La validación de las reglas para este campo de formulario.
En el controlador se debe añadir el siguiente código:
class Login extends CI_Controller {
function validaForm(){
$this->form_validation->set_rules('usuario', 'Usuario', 'required|min_length[4]
|max_length[25]|trim|alpha_dash');
$this->form_validation->set_rules('clave', 'Clave', 'required|min_length[4]
|trim|max_length[25]');
$this->form_validation->set_message('required','Debe introducir el campo %s');
$this->form_validation->set_message('min_length','El campo %s debe ser igual menos %d caracteres');
$this->form_validation->set_message('max_length','El campo %s debe ser menor que %d caracteres');
$this->form_validation->set_message('alpha_dash','%s solo contiene numeros, letras y guiones alto y bajo');
if ($this->form_validation->run() == FALSE){
return FALSE;
}else{
return TRUE;
}
}
}
Con esta función se ha validado los campos Usuario y Contraseña de la vista Logueo, de forma general se ha especificado que ambos campos son requeridos (required), el valor mínimo que se puede ingresar es de 4 caracteres y el máximo de 25, así mismo en el campo usuario sólo decimos que son admisibles números, letras y guiones altos y bajos.
Referencias de Reglas
Referencias de Reglas
![]() |
| Reglas nativas de CodeIgniter |


