2

我是 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){ }'

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

湾。哪种是传递用户输入的推荐方式(1 vs 2)?

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

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

4

1 回答 1

1

答案

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

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

您可能需要对其进行消毒,具体取决于您将如何使用它。但对我来说,我仍然以我自己的方式对其进行消毒。关于我想要的样子。

B推荐的传递用户输入的方法(1 vs 2)是什么?:

我认为您使用输入的方式或选择没有限制,当数据来自时,FORM input您将使用POST,因为您无法传递表单输入URL,(或者您可能只是不推荐)样式,例如示例2,如果它来自一个API或其他一些来源,最好的方法是通过GET或 CI 的$this->uri->segment()功能。或者function(param1)方法

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

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

但是您可以简单地传递www.example.com/?param1=foo&param2=barURI 并简单地使用#this->input->get('param1')来检索它,我使用了这么多,因为我必须在URI.

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

如果您想要 inspekt 的功能,您可以将 inspekt 集成到 CI。

于 2013-02-18T00:07:43.553 回答