当前位置: 首页 > 面试题库 >

在codeigniter中启用$ _GET

阎德义
2023-03-14
问题内容

我一直在尝试找出如何在CI中启用$ _GET。

看起来框架故意破坏了$ _GET数组,并且启用它需要认真修改核心类。谁能说这是为什么,以及如何克服它?

提醒您,我希望保持URI的解析和路由,只需要$ _GET即可。


问题答案:

将以下库添加到您的应用程序库。它覆盖清除$ _GET数组的默认输入库的行为。它允许URI段和查询字符串混合使用。

应用程序/库/MY_Input.php

class MY_Input extends CI_Input 
{
    function _sanitize_globals()
    {
        $this->allow_get_array = TRUE;
        parent::_sanitize_globals();
    }
}

修改某些配置设置也很有必要。uri_protocol设置需要更改为PATH_INFO,并且将’?’ 需要将字符添加到URI中允许的字符列表中。

application / config / config.php

$config['uri_protocol'] = "PATH_INFO";
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-?';

然后可以访问通过查询字符串传递的值。

$this->input->get('x');


 类似资料:
  • 问题内容: 当我的客户端应用和api位于本地主机时,agularJs控制器中的http.get请求可以正常工作。将api移至服务器时,出现问题。 客户端使用angularJs 日志给出:跨域请求被阻止:同源策略禁止读取位于http://domain.com/api/spots/2/0的远程资源。可以通过将资源移至同一域或启用CORS来解决此问题。 我已经将这两行添加到我的控制器构造中 还是一样的错

  • http。当我的客户端应用程序和api位于localhost中时,agularJs控制器中的get请求工作正常。当api移动到服务器时。,问题出现了。 使用angularJs的客户端 日志给出:跨源请求被阻止:同源策略不允许读取远程资源http://domain.com/api/spots/2/0.这可以通过将资源移动到同一域或启用CORS来解决。 我已经将这两行添加到我的控制器构造中 还是一样的

  • 因此,我计划在我的网站中实现CSRF,并设置所需的内容,我认为我设置正确,但仍然存在ajax提交表单的问题。 这就是我在配置中的内容,在配置中我设置了以防止每次提交时的重新生成(基于此讨论Ajax CSRF 403禁止的codeigniter)。 而我的表单,我没有使用html表单标记,而是使用和。 Ajax提交表单: PHP函数 如果我将ajax类型更改为,它可以工作,但不能工作。如果从控制台查

  • 问题内容: 在我的Web应用程序中使用codeigniter。我正在尝试使用base_url()函数,但显示为空结果。我也通过自动加载文件使用了自动加载帮助器,但是它似乎也不起作用。我也定义了基本常数,但是都没有用。 问题答案: 为了使用,您必须首先加载URL Helper。可以在第67行(或第67行附近)完成此操作: 或者,手动: 加载后,请切记不要隐式打印或回显任何内容,而是返回要打印的值:

  • 问题内容: 我可以在数据库中插入多行,但是问题是当我尝试更新它时,我收到一条Codeigniter错误消息。这是我的模型,实际上我没有什么重要的控制器可以找到错误,这是因为我只是在控制器中加载了该模型。 问题答案: 在您接下来的部分应该是 替换为 并更新您应该使用的值,而不是 替换为原始表名,并将其用作键,因此您无需使用。 参考: CodeIgniter 。

  • 问题内容: 我对大概要文件节具有通用逻辑,因此我尝试使用对概要文件节的通用逻辑进行创建,并且与该节相关的所有类都应按照我的理解正确扩展此Profile类,但是当我尝试创建时会收到错误消息: CodeIgniter尝试找到我正在其中运行的此类。 我的错误在哪里?或者,也许还有另一种更好的方法来标记出通用逻辑? 问题答案: 我认为您已经将MY_Controller放在/ application / c