2012-05-17 20 views
5

Mam formularz rejestracyjny, w którym sprawdzam poprawność danych wprowadzanych przez użytkownika. Oto mój kontroler:Używanie danych POST po sprawdzeniu poprawności przy użyciu 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 */ 

Problem jest z tej linii: $this->Users_model->add_user();. Chcę przekazać nazwę użytkownika, adres e-mail i hasło do mojego modelu Użytkownicy, aby dodać użytkownika do mojej bazy danych, ale nie jestem pewien, w jaki sposób mogę pobrać dane POST do tej metody. Normalnie użyłbym $_POST['username'] itd., Ale CodeIgniter uruchomił niektóre funkcje na wartościach wejściowych (trim(), xss_clean itd.). Jak mogę uzyskać te wartości i przekazać je do mojej metody add_user()?

Odpowiedz

13

Umożliwia uzyskanie danych POST po przefiltrowaniu przez bibliotekę weryfikacji formularzy. W kontrolerze by wykonać następujące czynności:

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

Thought to by było tak, ale nie byłam pewna, więc pomyślałam, że o to poproszę. Dziękuję Ci. :) –

+0

Nie ma za co! Czy masz prawo głosować w górę lub akceptować moją odpowiedź? – birderic

+0

SO nie pozwala mi od razu przyjąć odpowiedzi, najwyraźniej mogę to zrobić w ciągu 3 minut. :) –

0

Można użyć klasy wejściowego, a także funkcji pomocnika set_value('email')

1

nawet łatwiej utworzyć tablicę i wysłać tablicę do modelu

Powiązane problemy