我应该将验证$ _POST值保存到变量中吗?

时间:2012-09-16 07:21:56

标签: codeigniter

E.g。我的控制器里有这样的东西:

$this->form_validation->set_rules('email', 'Email', 'required|valid_email|xss_clean');
$this->form_validation->set_rules('name', 'Name', 'trim|xss_clean');

现在我的问题是,如果我稍后在我的代码中执行类似的操作(在同一方法中):

$user_profiles = array(

'email' => $_POST['email'],
'name' => $_POST['name']
); 

请问,此阵列中的变量是否已消毒?

我的意思是form_validation-> set_rules是否会保留$ _POST值的所有后期代码使用,或者我需要使用其他一些技术?

2 个答案:

答案 0 :(得分:4)

Codeigniter提供了一个输入类,它有一个方法帖子,可以在表单验证消毒后获得你需要的值:

$user_profiles = array(
    'email' => $this->input->post('email'),
    'name' => $this->input->post('name')
);

我或多或少会建议你使用$ this-> input-> post()而不是$ _POST,除非有特殊原因不这样做。文档对输入类有更多的解释和用法:http://ellislab.com/codeigniter/user_guide/libraries/input.html

答案 1 :(得分:1)

我不是100%肯定,但据我所知,form_validation只测试给定参数的变量,但不要清理它们。

我在处理表单数据时总是使用$postdata = $this->input->post(NULL, TRUE);