Validar formulario en codeigniter

0 votos
preguntado por Alejandro Montes (120 puntos) May 15, 2016 en PHP

Estoy tratando de validar un formulario en codeigniter y no he podido lograrlo. Me gustaría validar las variables que llegan de los input del formulario .
CONTROLADOR
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Emails extends CI_Controller {
function index(){
$datos['contenido'] = 'emails';
$this->load->view('contacto/mailcontacto', $datos); 
}
function enviar() {
//Descargar la libreria
$this->load->library('email');
$this->load->library('form_validation');$nombre = $this->input->post('nombre');
$telefono = $this->input->post('telefono');
$email = $this->input->post('email');
$asunto = $this->input->post('asunto');
$mensaje = $this->input->post('mensaje');

//Validaciones
//Nombre 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('telefono', 'Telefono', 'required|numeric');
$this->form_validation->set_rules('asunto', 'Asunto', 'required|min_length[3]|alpha|trim');
$this->form_validation->set_rules('mensaje', 'Mensaje', 'required|min_length[3]|alpha|trim'); 
if ($this->form_validation->run() == FALSE)
{

//Acción a tomar si existe un error el en la validación
}
else
{
//Acción a tomas si no existe ningun error
// Datos para enviar el correo
$this->email->from('desde@correo.com', 'Contacto');
$this->email->to('a@correo.com');
$this->email->subject($asunto); 
$this->email->message($body_msg );
$this->email->attach('img/logo.png');

$this->email->send();
redirect('contacto'); // Se direcciona
}
}
}
?>
 

1 Respuesta

0 votos
respondido por EzequielLaraTICS (200 puntos) May 19, 2016
Hola que tal  tengo un poco de conocimiento acerca de la estructura de Codeigniter y para realizar lo que requieres existe un apartado dentro de la estructura  de carpetas de Codeigniter  
Carpeta  aplication->Config-form_validation.php   En ese archivo debes de generar tus validaciones

Este es un ejemplo que realize en una validacion
<?php
$config=array ('arreglo_validaciones_Personas'=> array(
           
            array('field' => 'nombre','label' => 'Nombre','rules' => 'required|is_string|trim|xss_clean'),
             array('field' => 'mail','label' => 'E-Mail','rules' => 'required|valid_email|trim|xss_clean'),
             array('field' => 'telefono','label' => 'Teléfono','rules' => 'required|numeric|trim|xss_clean')                                                
        ));
?>

Y asi es como lo mando
 llamar en mi controlador            $this->form_validation->run("arreglo_validaciones_Personas")

Este es la función que realice dentro de mi controlador

public function altasPersonas()
   {

         if($this->input->post())
            {
               
                if ($this->form_validation->run("arreglo_validaciones_Personas"))
                {
                   $dataPersona=array
                   (
                        'nombre'=>$this->input->post("nombre",true),
                        'correo'=>$this->input->post("mail",true),
                        'telefono'=>$this->input->post("telefono",true),
                        'fecha'=>date("Y-m-d h:m:s")
                   );
                    $guardar=$this->model_persona->insertar_persona($dataPersona);
                    if($guardar)
                    {
                         $this->session->set_flashdata('ControllerMessage', 'Se ha agregado el registro exitosamente.');
                     
                redirect(base_url().'index.php/Controller_persona/verPersonas',  301);
                    }else
                    {
                        $this->session->set_flashdata('ControllerMessage', 'Se ha producido un error. Inténtelo nuevamente por favor.');
                                               redirect(base_url().'Controller_persona/editar',  301);
                    }
                }
            }
        $this->layout->view("vista_agregar_personas");


Espero te ayude mi aportación  un saludo

Preguntas relacionadas

0 votos
4 respuestas
preguntado por gapl (120 puntos) Ene 28, 2016 en PHP
0 votos
0 respuestas
preguntado por yoclens (120 puntos) Feb 12, 2017 en PHP
0 votos
4 respuestas
preguntado por estril7 (120 puntos) Ene 28, 2016 en PHP
0 votos
0 respuestas
preguntado por RAM47 (140 puntos) Nov 2, 2016 en PHP
0 votos
0 respuestas
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código
...