thinkphp空控制器的处理

<?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 "您访问的控制器不存在";
}
}

thinkphp空控制器的处理的更多相关文章
- thinkphp 空控制器
空控制器的概念是指当系统找不到请求的控制器名称的时候,系统会尝试定位空控制器(EmptyController),利用这个机制我们可以用来定制错误页面和进行URL的优化. 大理石平台价格表 现在我们把前 ...
- Thinkphp 空操作、空控制器、命名空间
1.空操作 空操作是指系统在找不到请求的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化. http://网址/index.php/Hom ...
- thinkphp的空控制器和空操作以及对应解决方法
在上篇随笔中我们已经知道了tp框架的四种访问方式,那么当在地址栏输入不存在的操作方法.控制器会怎么样呢? 先看一下定义: 空操作:一个对象(控制器)调用本身不存在的方法 空控制器:在实例化控制器对象的 ...
- 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组
真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...
- ThinkPHP空操作和空控制器的处理
所谓的空操作和空控制器,简而言之就是系统中不存在该方法或控制器,导致系统报错(本文版本3.2.3). 正确URL(测试环境): http://oa.com/index.php/admin/publi ...
- TP框架 ---空控制器和空操作
通过之前的学习我们知道了index.php是一个入口文件,如果没有这个入口文件的话,我们需要自己创建! [视图模板文件创建] 视图模板文件存放发位置在: 里面没有模板文件 如果我们想要访问Login控 ...
- thinphp讲解(三)——空操作、空控制器、跨控制器、命名空间
一.“空操作”本质意思:一个对象(控制器)调用本身不存在的操作方法 一般网站处于安全考虑不给用户提示任何错误信息 在tp里面控制器controller.class.php里有个_call()方法 所以 ...
- thinkPHP 空模块和空操作、前置操作和后置操作 详细介绍(十四)
原文:thinkPHP 空模块和空操作.前置操作和后置操作 详细介绍(十四) 本章节:介绍 TP 空模块和空操作.前置操作和后置操作 详细介绍 一.空模块和空操作 1.空操作 function _em ...
- TP框架部分---空控制器
<?php namespace Admin\Controller; use Think\Controller; class DengLuController extends Controller ...
随机推荐
- Linux PPTP搭建
PPPTP概述 tcp1723 1,安装 rpm -ivh ppp--14.1.rhel5.x86_64.rpm #安装ppp rpm -ivh pptpd--.rhel5.x86_64.rpm #安 ...
- C语言 百炼成钢17
//题目49:老师将糖果分成若干份,让学生按任意次序领取,第一个领取的,得到1份加上剩余糖果的1/10, //第二个领取的,得到2份加上剩余糖果的1/10,第三个领取的,得到3份加上剩余糖果的1/10 ...
- CSS 动画之九-会呼吸的信封
新年已经到来,各个网站都举办着各种不同类型的活动,'会呼吸的信封'有可能就是你遇到的其中一种.其实就是一个信封的样式,在封口处加上开合开合的动画效果,吸引用户去打开这个信封,点击后可能会送红包,优惠券 ...
- 构建高转化率的着陆页-PS+HTML+网络营销
课程简介 本课程是全网独家专业的着陆页课程,课程完整的再现了整个着陆页实战案例的开发过程,包括:策划.设计和实现.上线后的推广.优化及提高转化率的技巧等,本套课程能帮助您迅速掌握着陆页的能力,迅速洞察 ...
- Linux下的MySQL简单操作(服务启动与关闭、启动与关闭、查看版本)
小弟今天记录一下在Linux系统下面的MySQL的简单使用,如下: 服务启动与关闭 启动与关闭 查看版本 环境 Linux版本:centeros 6.6(下面演示),Ubuntu 12.04(参见文章 ...
- java.util.ConcurrentModificationException 解决办法
在使用iterator.hasNext()操作迭代器的时候,如果此时迭代的对象发生改变,比如插入了新数据,或者有数据被删除. 则使用会报以下异常:Java.util.ConcurrentModific ...
- SpringMVC实现上传和下载
摘要 有些下载的错误解决来 java.lang.IllegalStateException: getOutputStream() has already been called for this re ...
- java 十六进制颜色对照表
我们在编程中常常用到十六进制颜色码. 下面是颜色码对照表-英文名称-十六进制-RGB: 英文代码 形像颜色 HEX格式 RGB格式 LightPink 浅 ...
- [CareerCup] 7.7 The Number with Only Prime Factors 只有质数因子的数字
7.7 Design an algorithm to find the kth number such that the only prime factors are 3,5, and 7. 这道题跟 ...
- Linux第二次学习笔记
#Linux第二次实验(第三周) 学习目标 熟悉Linux系统下的开发环境 熟悉vi的基本操作 熟悉gcc编译器的基本原理 熟练使用gcc编译器的常用选项 熟练使用gdb调试技术 熟悉makefile ...