2011-08-30 9 views
10

Non riesco a trovare una versione di Codeigniter funzionante 2.0.3 con l'installazione hmvc e tank auth (imposta come modulo) correttamente. Ho installato CI correttamente e poi ho installato HMVC con queste direzioni https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/HomeImpostazione di Codeigniter HMVC con autoradio

Accedo al mio controller di benvenuto/visualizzo come esempio bene, il che significa che l'HMVC sta funzionando. Quindi cerco di aggiungere tank auth al progetto aggiungendolo a una cartella nella cartella modules. Ha il controller appropriato/vista/modello, ecc. Setup all'interno dell'autoradio. Ho persino aggiunto percorsi come

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

Ho anche esteso il controller all'interno del modulo auth a MX_Controller come indicato. Anche nel costruttore ho:

$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; 

Sembra essere riorientare bene al modulo tuttavia si tratta con un errore che dice ::

è verificato un errore

Impossibile caricare la richiesta classe: sicurezza

Cosa sto sbagliando? Qualcuno ha un'installazione di CI funzionante con HMVC e l'autenticazione del serbatoio come un modulo, quindi posso vedere come è fatto? Sono nuovo di HMVC, grazie

+0

Il file security.php esiste nella cartella della libreria? – Tobias

+0

security.php fa parte di codeigniter stesso, quindi non si trova nella cartella modules/auth/library/.... Devo prendere l'istanza di CI per chiamare le sue librerie/helper nel costruttore di un controller di moduli? –

+0

Così ho cambiato $ this-> load-> library ('security'); a $ this-> load-> helper ('security'); e ora si verifica un nuovo errore, penso che quando tenta di caricare la libreria tank_auth, dicendo che il file di configurazione tank_auth.php non può essere trovato..anche se ci sono moduli/nome_modulo/config/tank_auth.php intatti. Non sono sicuro del motivo per cui lo trova ma presumo che sia simile ai miei altri problemi –

risposta

4

ho trovato lo stesso problema, ma ho risolto mediante semplice aggiunta di un commento allo

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

così sarà simile a questa:

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

poiché la sicurezza sua ora parte del nucleo CodeIgniter, immagino la sua già caricato di default, e tutto sembra funzionare piuttosto bene

+0

prova questo: $ this-> load-> helper ('security'); – Haseeb

+0

e sostituisci '$ this-> security-> xss_clean();' a 'xss_clean(); –

0

Ho trovato una soluzione, ho semplicemente preso il file security.php dalla cartella system/core di codeigniters e l'ho scaricato in system/library.

0
  • spostare il file security.php da system/core a system/libraries

  • quindi modificare numero core/codeigniter.php linea 204 in $SEC =& load_class('Security', 'core'); a $SEC =& load_class('Security', 'libraries');

2

riparo questo, creando Security.php file in application/libraries directory con il codice seguente:

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

class Security extends CI_Security { } 
0

Security.php è presente in "codeigniter/sistema/core/Security.php" quindi fornire questo percorso il problema viene risolto facilmente

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

è in Helper Ora, secondo CodeIgniter 3.0 user guide

prova:

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

quindi intendete che questo è l'helper non libreria –

+1

sì, è di aiuto. – Haseeb

0

ho letto CodeIgniter 3.X User Guide e ho scoperto che "Security" è disponibile come "helper" ora.

Quindi è necessario modificare questo;

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

in

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

XSS Filtering

La classe di ingresso ha la capacità di filtrare in ingresso automaticamente per evitare attacchi cross-site scripting. Se si desidera che il filtro per eseguire automaticamente ogni volta che incontra POST o dati COOKIE è possibile attivarlo aprendo il file application/config/config.php e l'impostazione di questa:

$config['global_xss_filtering'] = TRUE; 

avete bisogno di leggere un utente CodeIgniter 3.0 Guida ci sono così tante modifiche e implementazione o si prega di consultare registro modifiche.