Codeigniter:推荐的方式将用户输入传递给控制器

时间:2013-02-17 19:46:48

标签: php codeigniter

我是codeigniter的新手,只是想确保我以正确的方式传递参数。

codeigniter可以使用常规的GET / POST输入参数,可以使用输入类在控制器中访问这些参数。

  1. 例如: $ this-> input-> get / post('param1',TRUE);

  2. 另一种方法是将其传递给 http://xyz.com/ci/index.php/cont/func/param1 其中param1可用于cont中的方法'func($ param1){}'

  3. 一个。 在第二种情况下,CI会自动清理用户输入还是由我决定(我猜它是后者)? 如果我要这样做,那该怎么做?

    湾 传递用户输入的推荐方法是哪种(1对2)?

    ℃。 “启用/禁用查询字符串”的优缺点是什么?

    d。 在CI中,有没有办法像Inspekt那样清理/验证用户输入?

1 个答案:

答案 0 :(得分:1)

<强>答复

A 在第二种情况下,CI会自动清理用户输入还是由我决定(我猜是后者)?如果我要这样做,那该怎么做?:

  

输入类   第二个可选参数允许您通过XSS运行数据   过滤。通过将第二个参数设置为布尔值TRUE来启用它;

您可能需要清理它仍然,具体取决于您将如何使用它。但对我来说,我仍然按照自己的方式对它进行消毒。我想知道它是什么。

B 推荐使用哪种方式传递用户输入(1对2)?:

我不认为您使用的输入方式或选择方式存在限制,当数据来自FORM input时,您将使用POST,因为您无法在{{}中传递表单输入1}},(或者你可能只是不推荐)样式如示例URL,如果来自2或其他来源,最好的方法是通过{{1} }或CI的API功能。或GET方法

C “启用/禁用查询字符串”的优缺点是什么?:

即使它被禁用,你仍然可以使用查询字符串,我没有看到禁用或启用它的任何缺点或优点,

但您可以简单地在URI上传递$this->uri->segment(),只需使用function(param1)来检索它,我使用了这么多,因为我必须在www.example.com/?param1=foo&param2=bar上传递加密数据。

D 在CI中,有没有办法像Inspekt那样清理/验证用户输入? :

如果您需要检查功能,可以将检查功能集成到CI。