2016-12-15 2 views
1

ich diese Login-Funktion in der Steuerung haben:Codeigniter Benutzerdaten Login-Sitzung, um es für alle Modell/Controller-Funktionen zur Verfügung zu stellen

public function members() { 
 
      if($this->session->userdata('is_logged_in')){ 
 
       redirect('pag/index');  
 
      }else{ 
 
       redirect('main/restricted'); 
 
      }

Mein Index wird geladen, aber mein Modell/Controller-Funktionen gewonnen wird wegen der Benutzersitzung nicht geladen. ich über das Tun eine MY_controller im Kern zu lesen, sieht mein wie folgt aus:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 
 

 
require(APPPATH.'/libraries/HttpResponse.php'); 
 

 
class MY_Controller extends CI_Controller { 
 
    private $_additional_css = array(); 
 
    private $_additional_js = array(); 
 

 
    function __construct() { 
 
     parent::__construct(); 
 
    }  
 
    public function is_logged_in($user=true) 
 
    { 
 
     $user = $this->session->userdata('user_data'); 
 
     return isset($user); 
 
    } 
 
}

Aber es wird nicht funktionieren, eine Idee?

+0

Verwendung Haken für die Benutzeranmeldung Sitzung, so dass es für alle Ihre Controller & Modell verfügbar sein kann. –

+0

Ich lese die Dokumentation über Haken, aber ich weiß, wie genau mein Array und wo soll ich diesen Haken setzen? Ich habe den Haken in der Konfiguration aktiviert. – Bogdan

Antwort

0

Änderungen in Login-Controller-Funktion machen: -

Pass genau Session-Parameter, die Sie

public function is_logged_in('user_data') 
{ 
    $user = $this->session->userdata('user_data'); 
    return $user; 
} 

danach in Ihrer Sitzung gesetzt Änderungen in MY_conroller: -
Pass variable Parameter in is_logged_in Funktion

public function is_logged_in($user_data) 
{ 
    $user = $this->session->userdata($user_data); 
    return $user; 
} 
0

Aktivieren Sie den Haken in config.php

$config['enable_hooks'] = TRUE; 

schreiben folgenden Code in application/config/hooks.php Datei

$hook['post_controller'] = array(
     'class' => 'MyClass', 
     'function' => 'Myfunction', 
     'filename' => 'Myclass.php', 
     'filepath' => 'controller', 
     'params' => '' 
); 

und letzte Schritt ist myclass.php Controller in Ihrem Controller-Ordner erstellen

class myclass extends CI_Controller 
{ 
    function myfunction() 
    { 
    if($this->session->userdata('is_logged_in')) 
     { 
       redirect('pag/index');  
     } 
    else 
     { 
       redirect('main/restricted'); 
     } 
    } 
} 
Verwandte Themen