[英]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.