2011-08-30 138 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用戶指南有這麼多的變化和實施或請參閱更改日誌。