5

ユーザー入力を検証するサインアップフォームがあります。これが私のコントローラーです:

<?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 */

問題はこの行にあります:$this->Users_model->add_user();。ユーザー名、電子メール、およびパスワードをユーザーモデルに渡して、ユーザーをデータベースに追加したいのですが、POSTデータをそのメソッドに取得する方法がわかりません。通常は$_POST['username']etcを使用しますが、CodeIgniterは入力値(など)に対していくつかの関数を実行しましtrim()xss_cleanadd_user()これらの値を取得してメソッドに渡すにはどうすればよいですか?

4

3 に答える 3

14

CodeIgniter入力クラスを使用すると、フォーム検証ライブラリによってフィルタリングされた後のPOSTデータを取得できます。コントローラでは、次のことを行います。

$username = $this->input->post('username');
$email = $this->input->post('email');
$password = $this->input->post('password');
于 2012-05-17T19:05:04.300 に答える
1

さらに簡単に、配列を作成してモデルに送信します

于 2013-08-13T14:47:47.523 に答える
0

入力クラスとヘルパー関数を使用できますset_value('email')

于 2012-05-18T05:23:46.593 に答える