如何使用PHP会话为非管理员用户创建不同的菜单


How to create different menu for non admin user using PHP session?

我是这个论坛的新手,最近我刚刚创建了Web应用程序来管理股票等等。(对不起,我的英语不好(

我只是在考虑是否必须为非管理员用户制作不同的菜单。这是管理员的菜单

这是管理员菜单

我需要删除注册用户的母版和设置菜单。我可以只使用会话来做到这一点吗?

允许不同的人做不同的事情是通过询问授权组件来完成的。CodeIgniter 没有自己的授权组件。你必须在其他地方寻找一个。

会话不会直接提供帮助。会话知道哪个用户正在使用该应用程序;必须将该信息传递给授权组件,以确定是否允许用户访问为管理员保留的页面。

您可以在模板中显示菜单之前检查会话

前任

$this->c_type = $this->CI->session->userdata('logtype');

        $menubar ='';
        if($this->c_type == 'Admin')
        {
           $menubar = $this->CI->load->view('admin/menubar', $data, true);      
        }                   
        else
                {
                    $menubar = $this->CI->load->view('general/menubar', $data, true);
                 }

您可以通过以下方法获取user_id

    $user_id=$this->session->userdata('user_id');
if($user_id ==1){ // I considered admin user_id =1
 echo "admin menu";
}
else{
 echo "user menu";
}

这是我的主要.php代码

      

类 Main 扩展 CI_Controller {

function __construct() { parent::__construct(); if(!$this->session->userdata('logged_in')) { redirect(site_url('login').'?u='.uri_string(), 'refresh'); } $this->data['title'] = 'Home'; $this->data['active'] = 'home'; $this->data['menu'] = array('home','keuangan','penjualan','pembelian','stok','master','setting'); } function index() { $data['title'] = 'Main'; $this->load->view('common/header',$this->data); $this->load->view('common/footer'); }

}