10

我无法正确设置带有 hmvc 和 tank auth(设置为模块)的工作 Codeigniter 版本 2.0.3。我已经正确安装了 CI,然后按照这些说明安装了 HMVC https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home

我以我的欢迎控制器/视图为例就好了,这意味着 HMVC 正在工作。接下来,我尝试通过将 tank auth 添加到模块文件夹中的文件夹来将其添加到项目中。它具有适当的控制器/视图/模型等。在坦克身份验证中设置。我什至在路线中添加了类似的东西

$route["auth"]="auth/login";

我还按照指示将 auth 模块中的控制器扩展为 MX_Controller。同样在构造函数中我有:

$this->load->helper(array('form', 'url'));
    $this->load->library('form_validation');
    $this->load->library('security'); <--failing to load this

    $this->load->library('tank_auth');
    $this->lang->load('tank_auth');
     $this->form_validation->CI =& $this;

它似乎很好地重定向到模块但是它出现了一个错误说::

遇到错误

无法加载请求的类:安全

我究竟做错了什么?有没有人安装了 HMVC 和 tank auth 作为模块的有效 CI 安装,所以我可以看到它是如何完成的?我是HMVC的新手,谢谢

4

7 回答 7

4

我发现了同样的问题,但我通过简单地添加评论解决了

$this->load->library('security');

所以它看起来像这样:

//$this->load->library('security');

由于安全性现在是 codeigniter 核心的一部分,我猜它已经默认加载了,而且一切似乎都运行良好

于 2011-10-10T15:28:08.050 回答
4

根据CodeIgniter 3.0 用户指南,它现在在 Helper 中

尝试:

$this->load->helper('security');
于 2015-05-18T06:29:06.127 回答
2

我通过使用以下代码在目录中创建Security.php文件来解决此问题:application/libraries

require_once(BASEPATH.'core/Security.php');

class Security extends CI_Security { }
于 2012-09-02T17:05:36.583 回答
0

我找到了一个解决方案,我只是从 codeigniters 系统/核心文件夹中取出 security.php 文件并将其放入系统/库中。

于 2011-08-31T16:55:23.163 回答
0
  • 将文件security.php从移动system/coresystem/libraries

  • 然后将core/codeigniter.php第 204 行编辑$SEC =& load_class('Security', 'core');$SEC =& load_class('Security', 'libraries');

于 2011-10-04T20:37:50.927 回答
0

Security.php 存在于“codeigniter/system/core/Security.php”中,因此提供此路径,您的问题将轻松解决

load->library('../core/security');
于 2013-04-02T11:26:59.583 回答
0

我阅读了 CodeIgniter 3.X 用户指南,发现“安全”现在可以作为“助手”使用。

所以你需要改变它;

$this->load->library('security');

进入

$this->load->helper('security');

XSS 过滤

Input 类能够自动过滤输入以防止跨站点脚本攻击。如果您希望过滤器在每次遇到 POST 或 COOKIE 数据时自动运行,您可以通过打开 application/config/config.php 文件并设置它来启用它:

$config['global_xss_filtering'] = TRUE;

您需要阅读 CodeIgniter 3.0 用户指南,其中有很多更改和实现,或者请参阅更改日志。

于 2016-01-20T12:04:33.273 回答