zoukankan      html  css  js  c++  java
  • 添加平台控制器,来禁止用户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","您未登录,请登录");
            }
        }
    }
  • 相关阅读:
    python D32 管道、线程池
    python D31 守护进程、进程锁、队列
    python D30 进程
    python 30 进程之间的相互独立、进程之间的时间差
    python D30 操作系统历史
    python D29 socketserver以及FTB
    python D28 粘包
    net4.0 task 超时任务代码 用Thread.sleep方式实现
    sql取随机结果集
    【ecshop---新增包邮卡功能】
  • 原文地址:https://www.cnblogs.com/xiaowie/p/14388181.html
Copyright © 2011-2022 走看看