PHP- Codeigniter - 返回修剪的所有输入数据

时间:2013-07-07 08:31:57

标签: php codeigniter trim

我想修剪每个input-data (get,post,cookie,session and so on)

我正在尝试构建一个hook文件,但不知道何时运行它,因为我想在控制器执行之前将所有已修剪的输入数据传递给控制器​​。

Codeigniter文档说:

  

pre_system

在系统执行期间很早就打电话。只有

  此时已加载

基准和钩子类。没有路由   或其他过程已经发生。

pre_controller

立即致电

  在调用任何控制器之前

。所有基类,   路由和安全检查已经完成。

     

post_controller_constructor

在控制器后立即调用

  

是实例化的,但在任何方法调用发生之前。

     

post_controller

控制器完全

后立即调用
  

执行。

我必须使用哪些? pre_controller?

1 个答案:

答案 0 :(得分:4)

不,你没有使用pre_controller。请改用pre_system

您希望尽早修改输入变量,否则Codeigniters input class将对您起作用(取决于配置,但如果您不想要pre_system是安全的方法从config.php context内获取代码。

对于递归修剪需求,应该这样做:array_walk_recursive(array(&$_SERVER, &$_COOKIE, &$_GET, &$_POST), 'trim');因为那些输入数组只在其叶节点处包含字符串值。但是要注意做一般事情,这通常会导致副作用,例如CI XSS过滤。如果您正在寻找特定于CI的解决方案,另一种方法可能是扩展输入类。