2012-05-17 10 views
5

Ho un modulo di registrazione in cui convalido l'input dell'utente. Ecco il mio controllo:Utilizzo dei dati POST dopo la convalida utilizzando 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 */ 

Il problema è con questa linea: $this->Users_model->add_user();. Voglio passare il nome utente, l'e-mail e la password al mio modello Utenti per aggiungere l'utente al mio database, ma non sono sicuro di come ottenere i dati POST in quel metodo. Normalmente userei $_POST['username'] ecc ma CodeIgniter ha eseguito alcune funzioni sui valori di input (trim(), xss_clean ecc.). Come posso ottenere questi valori e trasferirli nel mio metodo add_user()?

risposta

13

Il consente di ottenere i dati POST dopo che è stato filtrato dalla libreria di convalida del modulo. Nel vostro controller si dovrebbe effettuare le seguenti operazioni:

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

Pensiero sarebbe questo ma non ero sicuro di averlo pensato. Grazie. :) –

+0

Prego! Ti dispiace votare o accettare la mia risposta? – birderic

+0

SO non mi permette di accettare una risposta subito, a quanto pare posso in 3 minuti. :) –

0

È possibile utilizzare la classe di ingresso, nonché la funzione di supporto set_value('email')

1

ancora più semplice, creare un array e inviare la matrice al modello

Problemi correlati