TP框架部分---空控制器

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

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

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

控制器的内容如下:

<?php
namespace Admin\Controller;
use Think\Controller;
class EmptyController extends Controller
{
    public function _empty()//遇到访问空的控制器时输出这句话
    {
        echo "您访问的控制器不存在";
    }
}
时间: 2024-08-01 02:14:43

TP框架部分---空控制器的相关文章

ThinkPHP框架之空控制器

  HOME代表的是模块  前台可以用Home 后台用Admin   Model View Controller  统称为MVC   Model  是数据模型 主要是和数据库打交道的  View代表显示的模 Controller 控制器    MVC模式 都遵循"约定胜于配置" 必须要遵循规则    ThinkPHP 中的common文件夹是TP框架自带的一些函数  conf文件夹下的convertion.php 含有TP所有的配置  尽量不要修改 Lang 语言包 Library 存

TP框架基础 (二) ---空控制器和空操作

通过之前的学习我们知道了index.php是一个入口文件,如果没有这个入口文件的话,我们需要自己创建! [视图模板文件创建] 视图模板文件存放发位置在: 里面没有模板文件 如果我们想要访问Login控制器中的Login方法,首先我们要创建一个Login控制器对应的模板文件夹,该文件夹就对应着Login控制器: 然后在Login文件夹下再创建一个login.html的模板文件来对应Login控制器下的Login方法: 在login.html里面写入要显示的代码: 然后再次请求: [url地址大小写

TP框架控制器的空操作

在浏览器中输入tp框架入口文件的地址,如图 要注意,localhost/后面跟的是www的下一级,tp文件的上一级,因为我直接把tp文件做成了www目录的下一级,所以我写的地址localhost后面跟的就是tp 打上目录后回车,就会出来tp的主页面,如图 再随便打上一个没有的操作方法,如 打出的这个页面,暴露了很多信息,不太安全,所以我们要控制住,. 像这种操作本来没有的,叫做空操作 要改变这种,我们可以提供一种方法 从这个目录下找 可以在这个文件中查找双下划线打头的call方法 在这个位置搜到

TP框架 ---空控制器和空操作

原文 http://www.cnblogs.com/hanqishihu/p/5717036.html 空操作:没有指定的操作方法 空控制器:没有指定控制器 空操作: 一般网站处于安全考虑不给用户提示任何错误信息,空控制器:(为了防止对我们的网站进行攻击,看不出用什么做的网站) "空操作"本质意思:一个对象(控制器)调用本身不存在的方法(空操作就是访问了原来的控制器里没有的操作) 在OOP里边,对象调用本身不存在方法,处于用户体验比较好的角度考虑,我们可以在类里边制作一个魔术方法:fu

TP框架 控制器的空操作

控制器的空操作 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 理论逻辑解决: (访问哪个不存在的,就建哪个解决的空方法)->访问控制器不存在,建空控制器方法;->访问方法不存在,建空方法; 建空控制器或者空方法的原因:父类控制器中存在 对应空操作的方法;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1.当访问的方法

tp空操作和空控制器处理

TP框架几个重要文件:index.php,ThinkPHP.php,Library/Think/Think.class.php,Library/Think/App.class.php,conversion.php 空操作就是当用户访问不存在的方法,在控制器里声明一个_empty方法,这个方法会被自动调用,它是通过父控制Controller里的__call方法实现的. 当访问不存在的控制器的时候,要在Controller目录下新建一个Empty控制,这个控制器只需要一个_empty方法.

第一零三天上课 PHP TP框架下控制器的方法分离

(1)配置信息 修改配置文件->Config.php (配置后,原先的控制方法无效) 'ACTION_BIND_CLASS' => TRUE, // 控制器方法分离 (2)在Controller文件夹下创建   和控制器类名  相同  的文件夹    (该文件夹即代替原来的控制器) (3)在新建的文件夹下书写方法类(该类即代替原来的控制器下的方法) <?php namespace Home\Controller\Index; //命名空间具体到类名(代替类的文件夹) use Think\

PHP TP空操作空控制器

__双下划线开头,统称为魔术方法 空操作方法1.做empty方法(在子类里写方法) function _empty() { echo "网页不存在,请检查浏览器地址信息"; }2.做默认模板(不好用,可控性差) 空控制器做empty控制器,在里面写empty方法 跨控制器调用1.造对象方法 $index=new IndexController();//这里大小写敏感 echo $index->shuchu();2.使用A方法造对象方法(快捷方法) $index = A("

TP框架学习(一)

www.thinkphp.cn TP官网 一个项目->应用->模块->[组->]控制器->方法(代码) TP框架:ThinkPHP 目录结构: Common核心公共函数目录 functions.php系统函数库 特点:用一个大写字母作为函数名.函数说明1.函数功能,2.参数,3.返回值. Conf核心配置目录 convention.php惯例配置 默认配置全是在这里配置. debug.php Lang核心语言包目录 Library框架类库目录 Behavior 行为的类库目录