如何在php中的exit()之前显示内容?

时间:2014-06-08 01:10:08

标签: php codeigniter exit

我正在使用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方法做到这一点,但我想知道我是否可以按照以前的方式去做。

2 个答案:

答案 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标题,向浏览器和搜索引擎表明这是一个拒绝访问的错误页面,而不是普通页面。