Wenn Sie _construct
der Controller, können Sie feststellen, ob sie eingeloggt sind oder nicht von Anfang an. Wenn dies nicht der Fall ist, senden Sie sie zum Anmeldebildschirm:
Dies sollte definitiv in der Steuerung sein.
Sie könnten auch einen Basiscontroller erstellen, um Ihre regulären CI_Controller
zu erweitern, suchen Sie das MY_Controller
Konzept in der Dokumentation. Dort könnten Sie eine Methode hinzufügen, die für die Authentifizierung überprüft und leitet, wenn nicht, und es dann in Ihrem Controller-Methoden aufrufen, die eine Authentifizierung erfordern:
class MY_Controller extends Controller{
public $data = array();
function _construct() {
parent::_construct();
$data['logged_in'] = $this->session->userdata('logged_in');
}
function authenticated() {
if (!$this->data['logged_in']) {
redirect('YourLoginController');
}
}
}
Und dann in Ihrem Controller:
class Some_Controller extends MY_Controller {
function _construct() {
parent::_construct();
}
// If a method requires authentication
function someMethod() {
$this->authenticated(); //This does nothing if logged in
//It redirects to login if not logged in
//Your stuff.
}
//If a method DOESN'T require login, your $this->data to
//pass to the view has already been started from MY_Controller
//so append the display content you need to that array and
//then pass it to the view
function someOtherMethod() {
$this->data['somecontent'] = "I'm content";
$this->load->view('someView',$this->data);
}
}
Verwendung ein Konzept erstellt von der someOtherMethod()
Sie könnten dann die Variable $logged_in
aus Ihrer Sicht verwenden, um den Inhalt basierend auf einem Benutzer Authentifizierungsstatus zu ändern.