2017-08-12 1 views
0

comment passer les données d'utilisateur de session de connexion dans toutes mes pages de contrôleur: J'ai essayé beaucoup de codes, mais note travailler quoi que ce soit. s'il vous plaît quelqu'un peut m'aider. charger également la session de la bibliothèque de la session .it obtenir erreurcodeigniter comment passer session de connexion dans tous les contrôleurs

Severity: Notice: Undefined variable: session_data 

Filename: controllers/Banner.php 

Line Number: 11 

Backtrace: 

File: C:\xampp\htdocs\aapkavyavahar\admin\application\controllers\Banner.php 
Line: 11 
Function: _error_handler 

File: C:\xampp\htdocs\aapkavyavahar\admin\index.php 
Line: 315 
Function: require_once 

Mon connexion contoller:

function login_validation() 
    { 

     $this->load->library('form_validation'); 
     $this->form_validation->set_rules('username', 'Username', 'required'); 
     $this->form_validation->set_rules('password', 'Password', 'required'); 
     if($this->form_validation->run()) 
     { 
      //true 
      $username = $this->input->post('username'); 
      $password = $this->input->post('password'); 
      //model function 
      $this->load->model('main_model'); 
      if($this->main_model->can_login($username, $password)) 
      { 
       $session_data = array( 
         'username'  =>  $username 
       ); 
       $this->session->set_userdata($session_data); 
       redirect('login/enter'); 
      } 
      else 
      { 
       $this->session->set_flashdata('error', 'Invalid Username or Password'); 
       redirect('login/index'); 
      } 
     } 
     else 
     { 
      //false 
      $this->index(); 
     } 
    } 
public function enter(){ 
     if($this->session->userdata('username') != '') 
     { 
      $this->load->view('includes/dashlink'); 
      $this->load->view('includes/dashheader'); 
      $this->load->view('index'); 
      $this->load->view('includes/dashfooter'); 


     } 
     else 
     { 
      redirect(base_url() . 'login/index'); 
     } 
    } 
public function logout() { 

$this->session->sess_destroy(); 
$data['message_display'] = 'Successfully Logout'; 
$this->load->view('login', $data); 

    } 

Autre contrôleur:

function __construct() { 
      parent::__construct(); 
$this->load->library('session'); 
    if(!$this->session->userdata(' $session_data')){ 
    redirect(login); 
    } 
     } 
+0

Essayez de changer 'if ($ this-> session-> userdata ('$ session_data')) {' à 'if (! $ this-> session-> userdata ('nom d'utilisateur')) {' – Tpojka

+0

merci Tpojka – shahir

Répondre

0

Lors de la création de la session, vous pouvez donner un nom comme ci-dessous:

$this->session->set_userdata('session_name',$session_data); //give session name 

Vérification de la session:

function __construct() { 
     parent::__construct(); 
     $this->load->library('session'); 
     if(!$this->session->userdata('session_name')){ 
      redirect(login); 
     } 
} 

Et vous pouvez également accéder aux données de session:

$data_session = $this->session->userdata('session_name'); 
$username = $data_session['username]; 
+0

merci mes amis. son fonctionnement – shahir

+0

Veuillez voter et marquer comme bon pour de futures références. – Shihas