zoukankan      html  css  js  c++  java
  • thinkphp空控制器的处理

    复制代码
    <?php
    namespace AdminController;
    use ThinkController;
    class DengLuController extends Controller 
    {
        public function test()
        {
            //echo "这是测试的"
            $this->assign("a","world");
            $this->show();
        }
    }
    
    //这里面只有test方法,如果访问空的方法时,例如在浏览器输入localhost/thinkphp/index.php/Admin/DengLu/denglu时,页面中没有denglu方法。访问没有的方法会出现下面页面。
    复制代码

      出来的页面中提示了“非法操作:denglu”,下面还提示了错误位置以及其它一些信息。但是把网站放到服务器上以后,如果出现这种提示的话会有下面2个缺点:

      (1)这种提示信息太专业,用户在看到这种提示信息时会看不明白这种错误出现的原因;

      (2)出现这种提示信息不安全,如果访客比较专业的话看到这些提示信息后就可以获取到很多信息,就知道是用thinkphp框架做的网站,看到错误位置以后网站的目录结构也能获取的到;

      解决问题的方法如下:

    复制代码
    <?php
    namespace AdminController;
    use ThinkController;
    class DengLuController extends Controller 
    {
        public function test()
        {
            //echo "这是测试的"
            $this->assign("a","world");
            $this->show();
        }
        public function _empty()//加一个魔术方法,在有访问不存在的方法时执行,这里只是暂时的写这么一句话,访问没有的方法时会弹出“您输入的地址不对”.真正的写时需要加载一个页面进去,显示出想让访客看到的提示信息。
        {
            echo "您输入的地址不对";
        }
    }
    复制代码

    上面是针对空方法的处理,如果出现空控制器,将出现下列错误,错误的缺点和空方法的一样。解决空控制器的方法和空方法一样,也是写一个控制器方法,当遇到空控制器时就执行这个方法。

    新建一个控制器,命名如下:

    控制器的内容如下:

    复制代码
    <?php
    namespace AdminController;
    use ThinkController;
    class EmptyController extends Controller 
    {
        public function _empty()//遇到访问空的控制器时输出这句话
        {
            echo "您访问的控制器不存在";
        }
    }
    复制代码
  • 相关阅读:
    ASP.NET权限管理系统(FrameWork) 1.0.4 Release
    广告统计分析系统(ADCount) 1.0.0 Beta
    Asp.Net权限管理系统 专用代码生成工具(DDBuildTools) 1.1.0
    ASP.NET权限管理系统(FrameWork) 1.0.7 Release
    remoting缓存设计总结
    关于在Page_Load定义外部变量输出
    ASP.NET权限管理系统(FrameWork) 1.0.5 Release
    DDBuildTools 1.3.0 Release发布
    ASP.NET权限管理系统(FrameWork) 1.0.6 Release
    缺席
  • 原文地址:https://www.cnblogs.com/sq45711478/p/6207827.html
Copyright © 2011-2022 走看看