CodeIgniter - Validación de formulario

La validación es un proceso importante al crear una aplicación web. Garantiza que los datos que obtenemos sean adecuados y válidos para almacenarlos o procesarlos. CodeIgniter ha facilitado mucho esta tarea. Entendamos este proceso con un ejemplo sencillo.

Ejemplo

Crear un archivo de vista myform.php y guarde el siguiente código en application/views/myform.php. Esta página mostrará un formulario donde el usuario puede enviar su nombre y validaremos esta página para asegurarnos de que no debe estar vacía durante el envío.

<html>
 
   <head> 
      <title>My Form</title> 
   </head>
	
   <body>
      <form action = "" method = "">
         <?php echo validation_errors(); ?>  
         <?php echo form_open('form'); ?>  
         <h5>Name</h5> 
         <input type = "text" name = "name" value = "" size = "50" />  
         <div><input type = "submit" value = "Submit" /></div>  
      </form>  
   </body>
	
</html>

Crear un archivo de vista formsuccess.php y guárdalo en application/views/formsuccess.php. Esta página se mostrará si el formulario se valida correctamente.

<html>
 
   <head> 
      <title>My Form</title>
   </head> 
	
   <body>  
      <h3>Your form was successfully submitted!</h3>  
      <p><?php echo anchor('form', 'Try it again!'); ?></p>  
   </body>
	
</html>

Crea un archivo de controlador Form.php y guárdalo en application/controller/Form.php. Este formulario mostrará errores si no se valida correctamente o si no se redirige aformsuccess.php página.

<?php
  
   class Form extends CI_Controller { 
	
      public function index() { 
         /* Load form helper */ 
         $this->load->helper(array('form'));
			
         /* Load form validation library */ 
         $this->load->library('form_validation');
			
         /* Set validation rule for name field in the form */ 
         $this->form_validation->set_rules('name', 'Name', 'required'); 
			
         if ($this->form_validation->run() == FALSE) { 
         $this->load->view('myform'); 
         } 
         else { 
            $this->load->view('formsuccess'); 
         } 
      }
   }
?>

Agregue la siguiente línea en application/config/routes.php.

$route['validation'] = 'Form';

Ejecutemos este ejemplo visitando la siguiente URL en el navegador. Esta URL puede ser diferente según su sitio.

http://yoursite.com/index.php/validation

Producirá la siguiente pantalla:

Hemos agregado una validación en el controlador - Namees un campo obligatorio antes de enviar el formulario. Por lo tanto, si hace clic en el botón enviar sin ingresar nada en el campo de nombre, se le pedirá que ingrese el nombre antes de enviar, como se muestra en la pantalla a continuación.

Después de ingresar el nombre correctamente, será redirigido a la pantalla que se muestra a continuación.

En el ejemplo anterior, hemos utilizado la configuración de reglas requerida. Hay muchas reglas disponibles en CodeIgniter, que se describen a continuación.

Referencia de la regla de validación

La siguiente es una lista de todas las reglas nativas que están disponibles para usar:

Regla Parámetro Descripción Ejemplo

required

No Devuelve FALSE si el elemento del formulario está vacío.

matches

si Devuelve FALSE si el elemento del formulario no coincide con el del parámetro. coincide con [form_item]

regex_match

si Devuelve FALSE si el elemento del formulario no coincide con la expresión regular. regex_match [/ regex /]

differs

si Devuelve FALSE si el elemento del formulario no difiere del del parámetro. difiere [form_item]

is_unique

si Devuelve FALSE si el elemento del formulario no es exclusivo de la tabla y el nombre del campo en el parámetro. Nota: esta regla requiere que el Generador de consultas esté habilitado para funcionar. is_unique [table.field]

min_length

si Devuelve FALSE si el elemento del formulario es más corto que el valor del parámetro. min_length [3]

max_length

si Devuelve FALSE si el elemento del formulario es más largo que el valor del parámetro. max_length [12]

exact_length

si Devuelve FALSE si el elemento del formulario no es exactamente el valor del parámetro. longitud_exacta [8]

greater_than

si Devuelve FALSE si el elemento del formulario es menor o igual que el valor del parámetro o no es numérico. mayor_de [8]

greater_than_equal_to

si Devuelve FALSE si el elemento del formulario es menor que el valor del parámetro o no es numérico. mayor_que_igual_a [8]

less_than

si Devuelve FALSE si el elemento del formulario es mayor o igual que el valor del parámetro o no es numérico. menos_de [8]

less_than_equal_to

si Devuelve FALSE si el elemento del formulario es mayor que el valor del parámetro o no es numérico. menos_que_igual_a [8]

in_list

si Devuelve FALSE si el elemento del formulario no está dentro de una lista predeterminada. in_list [rojo, azul, verde]

alpha

No Devuelve FALSE si el elemento del formulario contiene algo más que caracteres alfabéticos.

alpha_numeric

No Devuelve FALSE si el elemento del formulario contiene algo más que caracteres alfanuméricos.

alpha_numeric_spaces

No Devuelve FALSE si el elemento del formulario contiene algo más que caracteres alfanuméricos o espacios. Debe usarse después del recorte para evitar espacios al principio o al final

alpha_dash

No Devuelve FALSE si el elemento del formulario contiene algo más que caracteres alfanuméricos, guiones bajos o guiones.

numeric

No Devuelve FALSE si el elemento del formulario contiene algo más que caracteres numéricos.

integer

No Devuelve FALSE si el elemento del formulario contiene algo más que un número entero.

decimal

No Devuelve FALSE si el elemento del formulario contiene algo más que un número decimal.

is_natural

No Devuelve FALSE si el elemento del formulario contiene algo que no sea un número natural: 0, 1, 2, 3, etc.

is_natural_no_zero

No Devuelve FALSE si el elemento del formulario contiene algo que no sea un número natural, pero no cero: 1, 2, 3, etc.

valid_url

No Devuelve FALSE si el elemento del formulario no contiene una URL válida.

valid_email

No Devuelve FALSE si el elemento del formulario no contiene una dirección de correo electrónico válida.

valid_emails

No Devuelve FALSE si algún valor proporcionado en una lista separada por comas no es un correo electrónico válido.

valid_ip

No Devuelve FALSE si la IP proporcionada no es válida. Acepta un parámetro opcional de 'ipv4' o 'ipv6' para especificar un formato de IP.

valid_base64

No Devuelve FALSE si la cadena proporcionada contiene algo más que caracteres Base64 válidos.