2012-05-17 6 views
5

Ich habe ein Anmeldeformular, wo ich Benutzereingaben validieren. Hier ist mein Controller:Verwenden von POST-Daten nach der Validierung mit 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 */ 

Das Problem ist, mit dieser Zeile: $this->Users_model->add_user();. Ich möchte den Benutzernamen, die E-Mail-Adresse und das Passwort an mein Benutzermodell übergeben, um den Benutzer zu meiner Datenbank hinzuzufügen, aber ich bin mir nicht sicher, wie ich die POST-Daten in diese Methode bringen kann. Normalerweise würde ich $_POST['username'] usw. verwenden, aber CodeIgniter hat einige Funktionen auf den Eingabewerten ausgeführt (trim(), xss_clean usw.). Wie kann ich diese Werte erhalten und sie an meine add_user() Methode weitergeben?

Antwort

13

Mit der CodeIgniter input class können Sie die POST-Daten abrufen, nachdem sie von der Formularvalidierungsbibliothek gefiltert wurden. In Ihrem Controller würden Sie wie folgt vor:

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

Gedanken schicken Es wäre das aber war nicht sicher, also dachte ich würde fragen. Vielen Dank. :) –

+0

Gern geschehen! Stört es dich, dass du abstimmst oder meine Antwort akzeptierst? – birderic

+0

SO erlaubt mir nicht sofort eine Antwort zu akzeptieren, anscheinend kann ich in 3 Minuten. :) –

0

können Sie die Eingabe-Klasse verwenden, sowie die Hilfsfunktion set_value('email')

1

noch einfacher, ein Array erstellen und das Array zu dem Modell