1

今まで気づかなかったのですが、CodeIgniter フォーム検証クラスを使用している場合、検証が失敗した場合 ($this->form_validation->run() === FALSE)、post 変数内のすべての特殊文字が変換されます。テキスト入力にあった一重引用符または二重引用符。この動作をオフにする方法はありますか? 次のように html_escape コマンドを使用して、プロジェクト内のすべてのフォームに事前入力を行いました。

<input value="<?php echo html_escape($this->input->post('value'));?>" />

html_escape は htmlspecialchars をもう一度実行し、フォームに html エンティティを表示します。「prep_for_form」を使用するルールを設定しておらず、XSS がオフになっているため、CI がこれを選択する理由がわかりません。

また、値を事前に入力するための set_value 関数については知っていますが、私の場合、その関数を使用できない他のことをしています。

どんな助けでも大歓迎です。

4

1 に答える 1

0

フォームのバリデーションがパスしなかったときにフォームの準備をオフにしたい場合は、MY_Form_validation.php を使用して form_validation クラスを拡張し、元の run() 関数をコピーして、次のコードをコメントアウトします。

if ($total_errors > 0)
{
    $this->_safe_form_data = TRUE;
}
于 2013-06-13T17:13:32.283 に答える