2

例如,我的控制器中有这样的东西:

$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 值的所有后续代码使用,或者我需要使用其他一些技术?

4

2 回答 2

4

Codeigniter 提供了一个输入类,它有一个 post 方法,可以在表单验证对它们进行清理后获取您需要的值:

$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

于 2012-09-16T08:01:32.020 回答
1

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

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

于 2012-09-16T08:00:55.080 回答