簡體   English   中英

如何在代碼點火器中使用會話創建權限

[英]How to create permission with session in code igniter

我在創建權限菜單時遇到問題,

好的,我有一個表用戶。

用戶名,密碼,權限。

我在這樣的模型中有一個功能。

function valid_login($username, $password)
        {
        $query = $this
            ->db
            ->where('username', $username) 
            ->where('password', md5($password)) 
            ->limit(1) 
            ->get('user'); /

        if ($query->num_rows() == 1) {
                return $query->row_array(); 
        }
        else
                {
                        return FALSE; 
                }
        }

來自控制器的值發布,像這樣的腳本。

public function index()
        {
              if ( isset($_SESSION['permission']) ) { 
                 redirect('home_controller/home'); 
              }

              $this->load->library('form_validation'); 
              $this->form_validation->set_rules('username', 'Username', 'required'); 
              $this->form_validation->set_rules('password', 'Password', 'required|min_length[4]');
              if ( $this->form_validation->run() == TRUE ) { 
                 $this->load->model('m_user'); 
                 $result = $this->m_user->valid_login(
                             $this->input->post('username'),  
                             $this->input->post('password')
                          );

                        if ($result == TRUE) { 
                        $_SESSION['permission'] = ????;
                            redirect('home_controller/home'); 
                        }
              } 

                $this->load->view('login_form'); 
        }

我不明白,如何從模型獲取字段權限值。 我需要該值來創建$ _SESSION。

而myView就是這樣。

<?php
if($_SESSION['permission']=="Administrator"){
    $this->load->view('administrator_menu');;
}else{
    $this->load->view('user_menu');;
}
?>

感謝您的關注。任何人都可以幫助我。

像這樣在CI設置會話:

if ($result == TRUE) { 
    print_r( $result );die;
    //$this->sesson->set_userdata('logged_user', $result); #this to set the session with the returned result
    $_SESSION['permission'] = $result['permission'];  #set permission from the result in the session
    redirect('home_controller/home'); 
}

現在讀取會話(如果存在或不存在)是這樣的:

if( $this->session->userdata('logged_user') ){
    echo "The user id stored in session is :".$id = $this->session->userdata['logged_user']['id'];
}else{
    redirect('someplace', 'refresh');
}

編輯:
要首先啟動會話,請在application / autoload.php中自動將其加載:

$autoload['libraries'] = array('session');

其次,在application/config.php設置一個隨機encryption key ,如下所示:

$config['encryption_key'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM