CI - 从报价中清除表单输入

时间:2014-12-30 12:52:54

标签: php forms codeigniter sanitization codeigniter-form-helper

我遇到的问题是,如果我提交单引号(')或双引号(")等字符,并且在提交表单后保留值,(例如由于验证失败, ),我得到了像'和"

我尝试过很多东西,比如 -

  • $this->input->post("field", true)代替$_POST
  • 访问表单值
  • 从配置启用XSS过滤,
  • 使用$this->security->xss_clean($data);

但没有任何帮助。 最后,我去了system \ helpers \ form_helper.php并在第177行更改了函数form_input,如下所示 -

上一页$defaults = array('type' => 'text', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value);

之后$defaults = array('type' => 'text', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => html_entity_decode($value, ENT_QUOTES, 'UTF-8'));

到目前为止,这已经解决了我的问题。

我想知道这是否是达到目的的正确方法?

1 个答案:

答案 0 :(得分:1)

我不是很确定您遇到的问题,但编辑系统文件来修复它并不是一个好主意。您应该从不更改系统文件夹中的任何内容,进行更改的正确方法是通过创建文件application/helpers/MY_form_helper.php来扩展表单帮助程序(使用您自己的前缀,在{{中定义) 1}})并在文件内部覆盖您要更改的功能。看起来应该是这样......

application/config/config.php