2011-06-16 4 views
0

im essayant de créer une nouvelle lib qui chargera automatique chaque fois qu'un contrôleur est chargé et authentifie pour voir si un utilisateur est connectéCodeIgniter sur mesure Lib

Je suis chargement automatique du script et son fin de chargement comment- jamais il ne seam pas authentifier

Mon Lib

class Authentication { 

var $CI; 
function Authenication() { 

    $this->CI =& get_instance(); 

    $this->CI->load->library('session'); 
    $is_logged_in = $this->CI->session->userdata('is_logged_in'); 
    if(!isset($is_logged_in) || $is_logged_in != true) 
    { 
     echo 'You don\'t have permission to access this page. <a href="../login">Login</a>';  
     die();   
    } 
} 

}

Toutes les suggestions sont grandement appréciés

Répondre

2

Je vois ce que vous essayez de faire et je suggérerais une approche différente.

Créez MY_Controller et placez-le dans le dossier principal. Voici une représentation de base de ce qui devrait être dans ce fichier.

class Public_Controller extends CI_Controller 
{ 
    // The data array holds all of the information to be displayed in views 
    public $data = array(); 

    function __construct() 
    { 
     parent::__construct(); 

     // Authentication library handles sessions and authentication, etc... 
     $this->load->library('Authentication'); 

     $this->data['account']['is_logged_in'] = $this->authenication->is_logged_in(); 
    } 
} 

class Auth_Controller extends Public_Controller 
{ 
    function __construct() 
    { 
     parent::__construct(); 

     if (!$this->data['account']['is_logged_in']) 
     { 
      redirect('user/login', 'location'); 
     } 
    } 
} 

Si vous le faites de cette façon alors pour les contrôleurs qui nécessitent une authentification, vous pouvez simplement étendre Auth_Controller autrement prolonger Public_Controller.