我正在使用codeigniter。在我的一个管理员控制器中,管理员登录后,我想创建一个开关来检查他的管理员级别。如果他的等级低于某个数字,他就无法查看某个页面。而是,将加载限制通知页面,然后页面将停止加载。
function add_user() {
$this->set_admin_level(9);
// stuffs
}
private function set_admin_level($level){
if ($this->session->userdata('admin_level') < $level ) {
$this->load->view("admin/restriction");
exit();
}
}
我尝试了exit()和die(),但是他们都杀了整个页面而没有显示任何内容。我知道我可以用if和then redirect方法做到这一点,但我想知道我是否可以按照以前的方式去做。
答案 0 :(得分:0)
试试这个:
private function set_admin_level($level){
if ($this->session->userdata('admin_level') < $level ) {
return $this->load->view("admin/restriction");
}
}
答案 1 :(得分:0)
die或exit将停止所有PHP处理。
如果您不想在空白页面上显示错误消息,则需要页面/视图来显示错误消息。然后,您可以将用户重定向到该页面,或者在退出之前使用PHP运行页面,例如使用$this->load->view
。
无论哪种方式,您都需要先创建页面或视图,因为您无法通过任何操作来显示内容。
在显示实际的错误页面之前,请设置HTTP 403标题,向浏览器和搜索引擎表明这是一个拒绝访问的错误页面,而不是普通页面。