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

我想修剪每个输入数据(get,post,cookie,session等).

我试图建立一个钩子文件,但不知道何时使它运行,因为我想在执行控制器之前将已经修剪的所有输入数据传递给控制器​​.

Codeigniter文档证明:

pre_system

在系统执行期间很早就调用过.只有

benchmark and hooks class have been loaded at this point. No routing
or other processes have happened.

前置控制器

立即致电

prior to any of your controllers being called. All base classes,
routing, and security checks have been done.

post_controller_constructor

在您的控制器之后立即调用

is instantiated, but prior to any method calls happening.

post_controller

控制器完全使用后立即调用

executed.

我必须使用哪些? pre_controller?

解决方法:

不,您不使用pre_controller.请改用pre_system.

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

为了满足递归修剪的需要,应该这样做:array_walk_recursive(array(& $_ SERVER,& $_ COOKIE,& $_ GET,& $_ POST),’trim’);因为这些输入数组仅在其叶节点处包含字符串值.但是,在执行常规操作时要小心,这通常是副作用的原因,例如CI XSS过滤.如果您正在寻找CI特定的解决方案,则另一种选择是扩展输入类.

上一篇:c – 如何正确调用getopt函数


下一篇:javascript-trim不是函数错误