2016-05-12 64 views
-1

我有一個用codeigniter編寫的網站。我的網站有2級。在codeigniter的所有網站頁面驗證用戶

  1. 管理
  2. 用戶

登錄時的用戶我的網站沒有任何錯誤,並正常工作,但是當我不註銷,並在瀏覽器中,用戶可以訪問輸入管理面板網址管理面板選項,並相反。

如何解決這個錯誤。

+0

在數據庫中設置用戶類型,並在會話中檢查管理頁面(如果登錄用戶是管理員) – Poria

+0

對管理員和用戶使用單獨的會話變量。 –

+0

用戶類型已設置。類型爲url的用戶可以訪問所有管理面板選項。這種方式必須檢查所有頁面。有另一種方法嗎? @poria –

回答

1

這是我用自己: 將它添加到控制器頂部的「類歡迎擴展是CI_Controller {」

public function login_check($user){ 
    if(isset($_SESSION['user'])) 
    { 
     if($_SESSION['user'] == $user) 
     { 
      return true; 
     } 
     else 
     { 
      return false; 
     } 
    } 
    else 
    { 
     return false; 
    } 
} 

下,並創建你的頁面的功能是這樣的:

public function index() 
{ 
    if($this->login_check('admin')) 
    { 
     $this->load->view('welcome_message'); 
    } 
    else 
    { 
     //Redirect here. 
    } 

} 
0

用我創建的用戶名創建一個庫。

class Users 
{ 
    public function __construct() 
    { 
     $this->ci =& get_instance(); 
    } 

    function _is_admin() 
    { 
     if($this->ci->session->user_type != 'admin') 
     { 
      redirect('verify_user'); 
     } 
    } 

    function _is_user() 
    { 
     if($this->ci->session->user_type != 'user') 
     { 
      redirect('verify_user'); 
     } 
    } 
} 

加載庫或者把它自動加載在application/config/autoload.php

然後,只需調用函數在要限制哪一個你的方法上。

function abc() 
{ 
    $this->users->_is_admin(); 
    // your code 
} 

如果你想限制控制器的所有方法,那麼在添加此方法Constructor

0

您應該使用_remap功能控制器來處理所有的請求,並在此功能,您應該有兩個主要部分,第一用於管理員功能,第二個用於其他人...