PHP Codeigniter通过URL限制管理页面

时间:2018-07-21 06:17:08

标签: php codeigniter login access

我正在建立一个网站,其中有一个管理员和用户页面。我有一个问题,即使我以用户身份登录,也可以通过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");
    }
}

1 个答案:

答案 0 :(得分:0)

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