是否有一种方法可以拒绝某些用户(例如,允许管理员和拒绝普通用户)访问特定的URL /视图?
我正在这样做:
<?php if($this->session->userdata('level')==='1'):?>
<h1>Hi!!!!</h1>
<p>You can access!!</p>
<?php elseif($this->session->userdata('level')==='2'):?>
<h1>Level 2, access denied</h1>
<?php else:?>
<h1>Level 3, access denied</h1>
<?php endif;?>
但是我更喜欢不允许加载页面,例如,不允许他们访问此URL:http://localhost/login/page/posts
您需要从控制器加载不同的页面,具体取决于用户的会话级别:
您的示例URL分解为:
http://localhost/login/page/posts
/controller/function/parameter
所以在您的控制器Login.php中:
function page($page){
$data['msg']='you need to login to access this page';
if($page=='posts' && $this->session->userdata('level')==='2'){
$this->load->view('posts'); // loads posts.php
}else{
$this->load->view('login', $data); // loads login.php, you can display $msg
}
}