Validar formularios con Codeigniter es muy sencillo.
Voy a crear un formulario simple, sin interacción con la base de datos, solamente para ver como se valida un formulario.
views/formulario_view.php
<!DOCTYPE HTML>
<html lang="es">
<head>
<meta charset="UTF-8"/>
<title>Validar formularios con Codeigniter</title>
</head>
<body>
<!--Creamos un formulario que nos lleve al controlador formulario_controller/recibirFormulario-->
<form action="<?=base_url("formulario_controller/recibirFormulario")?>" method="post">
<input type="text" name="nombre"/>
<input type="email" name="email"/>
<input type="password" name="password"/>
<input type="submit" name="submit" value="Enviar"/>
</form>
<h2><?php if(isset($mensaje)) echo $mensaje; ?></h2>
<?=validation_errors();?><!--mostrar los errores de validación-->
</body>
</html>
controllers/formulario_controller.php
<?php
class formulario_controller extends CI_Controller{
public function __construct() {
parent::__construct();
//Cargamos la librería de validación (todos las librerias, helpers, etc pueden ser cargados en los controladores o auto cargarlos indicándolo en los ficheros de configuración)
$this->load->library('form_validation');
$this->load->helper("url"); //Cargamos el helper de url imprescindible para usar la función base_url
}
public function index(){
$this->load->view("formulario_view");
}
public function recibirFormulario(){
if($this->input->post("submit")){
//Validaciones
//name del campo, titulo, restricciones
$this->form_validation->set_rules('nombre', 'Nombre', 'required|min_length[3]|alpha|trim');
$this->form_validation->set_rules('email', 'Email', 'required|min_length[3]|valid_email|trim');
$this->form_validation->set_rules('password', 'Contraseña', 'required|min_length[3]');
//Mensajes
// %s es el nombre del campo que ha fallado
$this->form_validation->set_message('required','El campo %s es obligatorio');
$this->form_validation->set_message('alpha','El campo %s debe estar compuesto solo por letras');
$this->form_validation->set_message('min_length[3]','El campo %s debe tener mas de 3 caracteres');
$this->form_validation->set_message('valid_email','El campo %s debe ser un email correcto');
if($this->form_validation->run()!=false){ //Si la validación es correcta
$datos["mensaje"]="Validación correcta";
}else{
$datos["mensaje"]="Validación incorrecta";
}
$this->load->view("formulario_view",$datos);
}
}
}
?>













