使用检查会话防止重复代码

时间:2016-03-24 04:14:37

标签: php session

我有三个会话级别:

  1. session->is_logged_external
  2. session->is_logged_admin
  3. session->is_logged_staff
  4. 我有一个小函数(checkLogin),如果他们没有访问页面所需的会话,我会调用它来显示消息。

    正如您所看到的,我在尝试创建一个函数时注释掉了代码,该函数检查会话是否属于这些类别之一,如果是这样,让他们看到页面,如果不显示消息。

    public function checkLogin()
        {
            $logged_admin = $this->session->is_logged_admin;
            //$logged_external = $this->session->is_logged_external;
            //$logged_staff = $this->session->is_logged_staff;
    
            if(!isset($logged_admin) || $logged_admin != TRUE) {
                echo 'Im sorry, you do not have administrator pillages';
                echo anchor('main/index', 'Return home');
                die();
            }
            //else if(!isset($logged_external) || $logged_external != TRUE) {
                //echo 'Im sorry, you do not have external pillages';
                //echo anchor('main/index', 'Return home');
            //}
            //else if(!isset($logged_staff) || $logged_staff != TRUE) {
                //echo 'Im sorry, you do not have staff pillages';
                //echo anchor('main/index', 'Return home');
            //}
        }
    

    这不起作用所以我对代码进行了评论。我的下一个想法是为每个会话创建一个函数,并调用控制器中每个页面所需的函数,但这基本上是重复3次但具有不同会话名称的相同代码,这是正确的做法吗这个 ?

    谢谢你们。

    想法二的例子

    第一个管理员会话功能

    public function checkLoginAdmin()
        {
            $logged_admin = $this->session->is_logged_admin;
            if(!isset($logged_admin) || $logged_admin != TRUE) {
                echo 'Im sorry, you do not have administrator pillages';
                echo anchor('main/index', 'Return home');
                die();
            }
        }
    

    第二个员工会话功能

    public function checkLoginStaff()
        {
            $logged_admin = $this->session->is_logged_staff;
            if(!isset($logged_staff) || $logged_staff != TRUE) {
                echo 'Im sorry, you do not have staff pillages';
                echo anchor('main/index', 'Return home');
                die();
            }
        }
    

    还有第三个是外部的,然后我可以在需要时给每个人打电话,对吗?

0 个答案:

没有答案