添加平台控制器,来禁止用户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","您未登录,请登录"); } } }