【问题标题】:How to restrict admin page via URL?如何通过 URL 限制管理页面?
【发布时间】:2018-12-29 09:45:53
【问题描述】:

我正在构建一个网站,其中有一个管理员和用户页面。我有一个问题,即使我以用户身份登录,我也可以通过 URL 访问管理页面。我在登录页面进行了验证检查,但是如果我已经以用户或管理员身份登录,我可以访问所有页面。我只想将页面限制为他们的角色。

这是我的控制器

class login extends CI_Controller
{

    function __construct()
    {
        parent::__construct();
        $this->load->helper('url','html');
        $this->load->model('login_model');
     
    
    }
    public function index(){
        $this->load->view('login');
    }
    public function verify_login()
    {
        $data = $this->login_model->verify_login();
        if ($data) {
            $userdata = array('id' => $data[0]['user_id'] , 'name' => $data[0]['full_name'], 'type' => $data[0]['user_type'] );
            $this->session->set_userdata('login_info',$userdata);

            if($userdata['type'] == 0) {
                header("Location: ".base_url()."home");
            } 
            else {
                header("Location: ".base_url()."reports_controller");
            }
        
        }
     
        else{
            header("Location: ".base_url()."login");
        }
    }

    public function logout(){
        $this->session->sess_destroy('login_info');
        header("Location: ".base_url()."login");
    }
}

【问题讨论】:

  • 你忘了附上你的代码
  • 根据用户类型创建角色,并在 MY_controller 上检查角色并将此 My_controller 扩展至其他控制器。或者您可以简单地检查 user_type 并限制那里的访问。
  • 您是否检查过其他控制器上的会话 login_info,您希望在其中限制用户类型?
  • 是的,我每个控制器都检查了我的登录信息
  • را 会议 خو استفاده کرده ام

标签: php codeigniter authentication authorization


【解决方案1】:

首先您必须检查您的会话值将返回什么,然后您可以限制 url。使用它来检查您的会话 $session = $this->session->userdata('login_info'); $type = $session['type'];

【讨论】:

  • 这不是不能将用户的id作为值的问题
  • 意思是你必须检查 id 而不是类型?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多