2016-12-15 59 views
1

我在控制器此登錄功能:笨用戶數據的登錄會話,使之適用於所有型號/控制器功能

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

我的指數將加載,但我的模型/控制器的功能贏得了由於用戶會話而加載。 我讀到的核心做MY_controller,礦山看起來像這樣:

<?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); 
 
    } 
 
}

但它不會工作,任何想法?

+0

使用掛鉤會話,以便它可用於所有控制器和型號。 –

+0

我讀了關於鉤子的文檔,但是我知道我的數組和鉤子應該放在哪裏?我確實在配置中啓用了鉤子。 – Bogdan

回答

0

使登錄控制器功能的變化: -

您在會議

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

在此之後設置

傳球準確的會話參數使MY_conroller變化: - 在
通可變參數is_logged_in
功能

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

在config.php中啓用掛鉤

$config['enable_hooks'] = TRUE; 

寫下面的代碼的application/config/hooks.php文件

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

和最後一步是在你的控制器文件夾中創建myclass.php控制用戶登錄

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