2012-05-17 11 views
5

Tengo un formulario de registro donde estoy validando la entrada del usuario. Aquí está mi controlador:Uso de datos POST después de validar usando CodeIgniter

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Register extends CI_Controller { 

    public function index() 
    { 
     $this->load->model('Users_model'); 
     $this->load->helper('form'); 
     $this->load->library('form_validation'); 

     $data['page_title'] = 'Register'; 
     $this->load->view('header', $data); 

     // Set form validation rules 
     $this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[5]|max_length[16]|xss_clean|callback_username_check'); 
     $this->form_validation->set_rules('email', 'Email', 'trim|required|min_length[5]|max_length[64]|valid_email|callback_email_check'); 
     $this->form_validation->set_rules('password', 'Password', 'required'); 
     $this->form_validation->set_error_delimiters('<span class="error">', '</span>'); 

     if ($this->form_validation->run() == FALSE) 
     { 
      $this->load->view('register', $data); 
     } 
     else 
     { 
      // Add the user to the database 
      $this->Users_model->add_user(); 
      $this->load->view('register_success', $data); 
     } 

     $this->load->view('footer', $data); 
    } 

    /* Functions to check username and email */ 
} 

/* End of file register.php */ 
/* Location: ./application/controllers/register.php */ 

El problema es con esta línea: $this->Users_model->add_user();. Quiero pasar el nombre de usuario, el correo electrónico y la contraseña a mi modelo de Usuarios para agregar al usuario a mi base de datos, pero no estoy seguro de cómo puedo obtener los datos POST en ese método. Normalmente usaría $_POST['username'] etc. pero CodeIgniter ha ejecutado algunas funciones en los valores de entrada (trim(), xss_clean, etc.). ¿Cómo puedo obtener estos valores y pasarlos a mi método add_user()?

Respuesta

13

El CodeIgniter input class le permite obtener los datos de POST después de haber sido filtrados por la biblioteca de validación de formularios. En su controlador tendría que hacer lo siguiente:

$username = $this->input->post('username'); 
$email = $this->input->post('email'); 
$password = $this->input->post('password'); 
+0

Sería esto, pero no estaba seguro, así que pensé en preguntar. Gracias. :) –

+0

¡De nada! ¿Te importa votar o aceptar mi respuesta? – birderic

+0

SO no me permite aceptar una respuesta de inmediato, aparentemente puedo en 3 minutos. :) –

0

Usted puede utilizar la clase de entrada, así como la función auxiliar set_value('email')

1

aún más fácil, crear una matriz y enviar la matriz al modelo de pensamiento

Cuestiones relacionadas