2016-05-12 63 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功能控制器来处理所有的请求,并在此功能,您应该有两个主要部分,第一用于管理员功能,第二个用于其他人...