为了账号安全,请及时绑定邮箱和手机立即绑定

如何在具有 3 个用户角色的 codeigniter 上进行良好的多级登录

如何在具有 3 个用户角色的 codeigniter 上进行良好的多级登录

PHP
白猪掌柜的 2021-10-22 14:46:04
我将使用 3 个用户角色登录并将访问权限限制为仅特定页面,但是每当我尝试手动键入地址时,我都可以在应限制特定用户访问该页面时访问该页面我正在尝试遵循互联网上的一些代码,但此代码仅适用于登录,但无法限制特定用户登录时的直接访问这是控制器Login.php<?phpclass Login extends CI_Controller{    function __construct()    {        parent::__construct();        $this->load->model('login_model');    }    function index()    {        $this->load->view('login');    }    function auth()    {        $username = htmlspecialchars($this->input->post('username', TRUE), ENT_QUOTES);        $password = htmlspecialchars($this->input->post('password', TRUE), ENT_QUOTES);        $cek_us_guru = $this->login_model->auth_guru($username, $password);        if ($cek_us_guru->num_rows() > 0) { //jika login sebagai wali kelas            $data = $cek_us_guru->row_array();            $this->session->set_userdata('masuk', TRUE);            if ($data['level'] == '1') { //id_role admin                $this->session->set_userdata('id_role', '1');                $this->session->set_userdata('ses_id', $data['email']);                redirect('page');            } else { //id_role dosen                $this->session->set_userdata('id_role', '2');                $this->session->set_userdata('ses_id', $data['email']);                redirect('page');            }        } else { //jika login sebagai mahasiswa            $cek_us_orang_tua = $this->login_model->auth_orangtua($username, $password);            if ($cek_us_orang_tua->num_rows() > 0) {                $data = $cek_us_orang_tua->row_array();                $this->session->set_userdata('masuk', TRUE);                $this->session->set_userdata('id_role', '3');                $this->session->set_userdata('ses_id', $data['email']);                redirect('page');            } else {  // jika username dan password tidak ditemukan atau salah                $url = base_url();                echo $this->session->set_flashdata('msg', 'Username Atau Password Salah');                redirect($url);            }        }    }
查看完整描述

2 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

您可以在 page.php index() 函数而不是函数 __construct() 中尝试此操作


function index()

    {            

       if($this->session->userdata('id_role') ==1){ 

         $data['_view'] = 'dashboard';

         $this->load->view('layouts/main', $data);

       }else{

         redirect("login");

       }

    }


查看完整回答
反对 回复 2021-10-22
?
aluckdog

TA贡献1847条经验 获得超7个赞

您正在重定向到page控制器索引方法,您可以在该index方法上设置访问角色:


function index()

{

    if (!empty($this->session->userdata('id_role'))) {

        $data['_view'] = 'dashboard';

        $this->load->view('layouts/main', $data);

    } else {

        redirect(base_url());

    }

}


查看完整回答
反对 回复 2021-10-22
  • 2 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信