添加平台控制器,来禁止用户FQ

 

我们在login页面中已经添加了对用户名和密码的检验是否合法,但是如果在页面中输入index.php?p=back&c=Index&a=index,那么就不会通过login界面,直接进入到后台首页

怎么解决呢? 

  引入平台控制器类,PlateFormController.class.php,why?为什么不在Controller基础中写?

  因为我们考虑到Controller基础控制器,前台和后台都需要使用,难道在home平台下我们也需要验证 登录?

所以我们引入了平台控制器,只有在back中才可以使用?我们后台的所有其他控制器继承平台控制器,而平台控制器

继承基础控制器,这样基础控制器中的方法我们也可以使用了

<?php 
/**
 * 后台的平台控制器,它继承controller控制器
 */
class PlatFormController extends Controller{


    public function __construct(){
        //父类中也有构造方法,我们在写就会被覆盖,所以需要先显示
        parent::__construct();
        $this->checkedLogin();
    }
    /**
     * 判断后台管理员是否登录防止FQ
     */
    protected function checkedLogin(){
        $arr=array(
            //定义数组,来保存那个平台下的方法,不需要判断FQ
            "Admin" =>array('show','capcha','check'),
        );
        //如果数组arr[平台](前面我们定义过),并且 ACTION常量动作,是否在$arr[平台]存在,说明当前控制器下的动作不需要验证
        if(isset($arr[CONTROLLER]) && in_array(ACTION,$arr[CONTROLLER])){
            return  ;
        }
        @session_start();
        if(!$_SESSION['adminInfo']){
            $this->jump("index.php?p=back","您未登录,请登录");
        }
    }
}

 

posted @ 2021-02-08 11:31  WhiteSpace  阅读(15)  评论(0编辑  收藏  举报