【问题标题】:Using POST data after validating using CodeIgniter使用 CodeIgniter 验证后使用 POST 数据
【发布时间】:2012-05-17 19:01:25
【问题描述】:

我有一个注册表单,用于验证用户输入。这是我的控制器:

<?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-&gt;Users_model-&gt;add_user();。我想将用户名、电子邮件和密码传递给我的用户模型以将用户添加到我的数据库中,但我不确定如何将 POST 数据获取到该方法中。通常我会使用$_POST['username'] 等,但 CodeIgniter 已经在输入值上运行了一些函数(trim()xss_clean 等)。如何获取这些值并将它们传递给我的 add_user() 方法?

【问题讨论】:

    标签: php codeigniter post registration


    【解决方案1】:

    CodeIgniter input class 允许您在表单验证库过滤后获取 POST 数据。在您的控制器中,您将执行以下操作:

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

    【讨论】:

    • 以为会是这样,但不确定所以想我会问。谢谢你。 :)
    • 不客气!你介意投票还是接受我的回答?
    • SO 不允许我立即接受答案,显然我可以在 3 分钟内接受。 :)
    【解决方案2】:

    更简单,创建一个数组并将数组发送到模型

    【讨论】:

      【解决方案3】:

      您可以使用输入类以及辅助函数set_value('email')

      【讨论】:

        猜你喜欢
        • 2011-09-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-26
        • 2014-10-17
        • 2015-07-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多