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')
);

特に理由がない限り、$_POST の代わりに $this->input->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 に答える