【问题标题】:How do I disable Codeigniter _GET Query Strings?如何禁用 Codeigniter _GET 查询字符串?
【发布时间】:2011-12-14 21:16:17
【问题描述】:

我认为 Codeigniter 删除了从 url 检索 _GET 数据的功能,并添加了自己的函数,您可以在其中检索 URI 段。例如。 localhost/controller/method/10

今天更新到 Codeigniter 2.1.0 后,我尝试了 $this->input->get('data') 并在我的网址中使用了 localhost/controller/method?data=10,它成功了。我是否以某种方式破坏了我的 Codeigniter 安装,或者这个功能现在应该在这里?

在我的config/config.php 文件中,我找到了以下两行:

$config['allow_get_array'] = TRUE;
$config['enable_query_strings'] = FALSE;

我认为第一行只会启用 Codeigniter 的使用 URI 段的 GET 方法,例如。控制器/方法/数据/更多数据。而第二个将启用查询字符串,例如。 ?data=10.

那么我在这里错过了什么?

【问题讨论】:

  • 如果您从 .htaccess 中删除 QSA 标志,那么 ?data=10 将不会通过
  • 感谢@LawrenceCherone 的建议,但是当我从 .htaccess 文件中删除 QSA 标志时,它并没有改变任何东西。我什至重新启动了我的本地 MAMP 服务器以确保。

标签: php codeigniter


【解决方案1】:
$config['allow_get_array'] = TRUE;
$config['enable_query_strings'] = FALSE;

认为第一行只会启用 Codeigniter 的 GET 方法 使用 URI 段。而第二个将启用查询 字符串。

AFAIK,第二个是正确的,而第一个只是意味着 $_GET 数组没有被 Input 类“破坏和净化”。具体来说,我指的是输入类中的_sanitize_global()方法,里面有这几行代码:

// Is $_GET data allowed? If not we'll set the $_GET to an empty array
        if ($this->_allow_get_array == FALSE)
        {
            $_GET = array();
        }
        else
        {
            if (is_array($_GET) AND count($_GET) > 0)
            {
                foreach ($_GET as $key => $val)
                {
                    $_GET[$this->_clean_input_keys($key)] = $this->_clean_input_data($val);
                }
            }
        }

我查看了用户指南,其中有一节 $this->input->get() 但我认为那只是在谈论 Codeigniter 的 URI 段方式。

看起来您正在查看/引用 $this->uri->segment(n) 方法,该方法获取 uri 字符串中指定的 n 段;这(非常)大致相当于在 URL 中获取查询参数。

【讨论】:

    【解决方案2】:

    没有必要将 $_GET 与 codeigniter 一起使用,只需使用 $this->uri->segment(n) 从 url 获取变量,根据您的 url 分段,例如

    http://localhost/myweb/index.php/controller/function/myvar
    

    然后段 1 是控制器 2 是函数,3 是 myvar,就是这样,我来宾清晰安全:D

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 2017-09-29
      相关资源
      最近更新 更多