2011-08-30 139 views
10

我无法正常使用hmvc和tank auth(设置为模块)设置正在运行的Codeigniter版本2.0.3。我已经安装了CI适当,然后安装HMVC与这些方向https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home使用tank验证码设置Codeigniter HMVC

我得到我的欢迎控制器/视图作为例子就好了,这意味着HMVC正在工作。接下来,我尝试将tank auth添加到项目中,方法是将其添加到modules文件夹中的文件夹中。它具有适当的控制器/视图/模型等。我甚至在路线中加入了类似

$ 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和坦克认证作为模块进行工作CI安装,以便我可以看到它是如何完成的?我是HMVC的新手,谢谢

+0

库文件夹中是否存在security.php文件? – Tobias

+0

security.php是codeigniter本身的一部分,因此它不在modules/auth/libraries/...文件夹中。为了在模块控制器的构造函数中调用它的库/帮助器,我必须抓住CI的实例吗? –

+0

所以我改变了$ this-> load-> library('security');到$ this-> load-> helper('security');现在发生了一个新的错误,我想当它尝试加载tank_auth库时,说没有找到配置文件tank_auth.php ..尽管module/modulename/config/tank_auth.php完好无损。不知道为什么它找到它,但我假设它似乎是我的其他问题 –

回答

4

我发现了同样的问题,但我通过简单的增加一个解决对

的评论
$this->load->library('security'); 

所以它看起来就像这样:

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

因为安全方面现在笨核心的一部分,我想它已经默认加载的,一切似乎是工作不错

+0

试试这个:$ this-> load-> helper('security'); – Haseeb

+0

并将'$ this-> security-> xss_clean();'替换为'xss_clean(); –

0

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

0
  • 移动文件security.phpsystem/coresystem/libraries

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

2

我解决这个问题,通过创建Security.php文件在目录application/libraries用下面的代码:

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

class Security extends CI_Security { } 
0

Security.php存在于“笨/系统/核心/ Security.php” 所以提供该路径您的问题得到现在根据CodeIgniter 3.0 user guide

尝试轻松

load->library('../core/security'); 
4

它是辅助解决:

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

所以你的意思是这个帮手不是图书馆 –

+1

是的,它是帮手。 – Haseeb

0

我阅读笨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用户指南有这么多的变化和实施或请参阅更改日志。