我使用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重定向方法来做到这一点,但我想知道我是否可以用前面的方法来做到这一点。
try this:
private function set_admin_level($level){
if ($this->session->userdata('admin_level') < $level ) {
return $this->load->view("admin/restriction");
}
}
die or exit将停止所有PHP处理。
如果您不希望在空白页上显示错误消息,则需要一个页面/视图来显示错误消息。然后,您可以将用户重定向到该页,或者在退出之前在PHP中运行该页,例如使用$this->load->view
。
无论哪种方式,您都需要先创建页面或视图,因为您不可能什么都不做就显示某些内容。
在显示实际的错误页面之前,请设置HTTP 403头,向浏览器和搜索引擎表明这是一个拒绝访问错误页面,而不是一个正常的页面。