thinkPHP5框架设置404、403等http状态页面的方法

本文实例讲述了thinkPHP5框架设置404、403等http状态页面的方法。分享给大家供大家参考,具体如下:

要做到这一点,首先要在你的配置文件将调试模式关闭(在开发阶段要打开):

'app_debug' => false,

然后在配置文件 config.php 中配置404等页面的模板路径(APP_PATH指的是application路径):

'http_exception_template'  => [
    // 定义404错误的重定向页面地址
    404 => APP_PATH.'404.html',
    // 还可以定义其它的HTTP status
    401 => APP_PATH.'401.html',
    403 => APP_PATH.'404.html',
  ],

404页面位于 application 目录下,404.html部分代码如下:

<img src="__INDEX__/img/404.png" width="818" height="595" style="display: block;margin: 0 auto;">
<div class="" style="font-size: 36px;margin: 0 auto;text-align: center;color: #323232;">
  您查找的页面不存在,还有
  <span id="dd" style="color:darkorange;font-weight: bold;">6</span>
  秒,页面将自动跳转首页...
</div>
<!--倒计时-->
<script type="text/javascript">
function run(){
  var s = document.getElementById("dd");
  if(s.innerHTML == 0){
    window.location.href='/';
    return false;
  }
  s.innerHTML = s.innerHTML * 1 - 1;
}
window.setInterval("run();", 1000);
</script>

测试  controller

if (Request::instance()->isAjax()) {
  $data = input();
  $info = [];
  $where = '';
  switch ($data['msg']) {
  case '验证码':
    $info = [
    'y' => '输入正确',
    'n' => '输入错误',
    ];
  $where = session::get('admin_login_session') == md5($data['param']);break;
 }
 if ($where) {
  echo '{"info":"' . $data['msg'] . $info ['y'] . '","status":"y"}';//注意ValidForm返回格式(json)
 } else {
  echo '{"info":"' . $data['msg'] . $info ['n'] . '","status":"n"}';//注意ValidForm返回格式(json)
 }
}else{
 throw new \think\exception\HttpException(403, '~~~非法请求~~~');
}

404效果如下图:

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

(0)

相关推荐

  • ThinkPHP3.2.2的插件控制器功能简述

    ThinkPHP从3.2.2版本开始支持插件控制器的调用,可以通过更加方便的URL地址访问到模块中某个插件定义的控制器. 当URL中传入插件控制器变量的时候,会自动定位到插件控制器中的操作方法. 插件控制器的变量由参数 VAR_ADDON 进行设置,默认为addon,例如我们在URL中传入: http://serverName/Home/info/index/addon/SystemInfo 由于传入了addon参数,因此这里的User控制器并非原来的 Home/Controller/InfoC

  • ThinkPHP 404页面的设置方法

    在很多网站中都会有使用404页面的时候,在ThinkPHP框架中该如何设置呢,接下来我介绍其中一种方法 1.首先要在Lib/Action 下建立EmptyAction.class.php模块 内容如下: 复制代码 代码如下: <?php /*  * @author rocky  * @date 20141021  * @desc 空模块404等错误  * */ class EmptyAction extends CommonAction {     function _empty(){     

  • thinkphp框架下404页面设置 仅三步

    404页面即系统在找不到请求的操作方法和找不到请求的控制器名称时的一种报错行为的优化. 在很多网站中都会有使用404页面的时候,在ThinkPHP框架中该如何设置呢,接下来我介绍其中一种方法,具体内容如下 第一步:在thinkphp框架中的Home/Comtroller中建一个EmptyController.class.php,其代码如下: <?php namespace HomeController; use ThinkController; class EmptyController ext

  • ThinkPHP3.2.2的插件控制器功能

    3.2.2版本开始支持插件控制器的调用,可以通过更加方便的URL地址访问到模块中某个插件定义的控制器. 当URL中传入插件控制器变量的时候,会自动定位到插件控制器中的操作方法. 插件控制器的变量由参数 VAR_ADDON 进行设置,默认为addon,例如我们在URL中传入: 复制代码 代码如下: http://serverName/Home/info/index/addon/SystemInfo 由于传入了addon参数,因此这里的User控制器并非原来的 复制代码 代码如下: Home/Con

  • thinkphp3.2实现跨控制器调用其他模块的方法

    本文实例讲述了thinkphp3.2实现跨控制器调用其他模块的方法.分享给大家供大家参考,具体如下: thinphp中前台后台都有互相调用方法,这样可以省去重复内容. $hello = new \Admin\Common\Fun\hello(); $hello->hehe(); 调用其他地方的方法同理. 如果是在同控制器里模块名可以省略. 如调用common里面的某个类的方法: $hello = new \Common\Fun\hello(); $hello->hehe(); 框架里面提供了跨

  • ThinkPHP3.1.x修改成功与失败跳转页面的方法

    本文实例讲述了ThinkPHP3.1.x修改成功与失败跳转页面的方法.分享给大家供大家参考,具体如下: 在ThinkPHP中,成功与失败的提示页面已经自带.在Action方法中自动调用即可. 比如在Lib\Action有如下的SucErrAction.class.php: <?php class SucErrAction extends Action{ public function index(){ $this->display(); } public function success1()

  • thinkphp3.2实现上传图片的控制器方法

    本文讲述了thinkphp3.2实现上传图片的控制器方法.分享给大家供大家参考,具体如下: public function file() { $baseUrl = str_replace('\\', '/', dirname($_SERVER['SCRIPT_NAME'])); import('ORG.Net.UploadFile'); import('ORG.Util.Services_JSON'); $upload = new UploadFile(); $upload->maxSize =

  • ThinkPHP3.1新特性之对页面压缩输出的支持

    目前大多数浏览器都已经支持页面的压缩输出,通过压缩输出,页面大小可以减少30%,但是由于3.0及以前的版本都没有内置页面压缩输出功能,所以一般来说,开发人员需要自己在入口文件中添加: ob_start('ob_gzhandler'); 但是由于服务器环境的不同,有时候这个配置会和php.ini文件中的zlib压缩配置冲突.而ThinkPHP3.1版则内置了页面压缩输出的功能,不再需要再手动添加ob_gzhandler代码,增加OUTPUT_ENCODE配置参数,并支持检测zlib.output_

  • ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

    本文实例讲述了ThinkPHP3.2.3框架实现的空模块.空控制器.空操作,跳转到错误404页面.分享给大家供大家参考,具体如下: [演示准备] 首先下载了一个ThinkPHP3.2.3,目录结构如下:(只有Home模块.Index控制器.index操作方法) 然后找了一个简易的错误404页面404.html放到了根目录: [空模块] 访问一个不存在的模块Admin,错误提示: 修改根目录下 ThinkPHP/Library/Think/Dispatcher.class.php 178行代码:

  • ThinkPHP访问不存在的模块跳转到404页面的方法

    首先在ACTION中新建一个文件EmptyAction.class.php,其代码如下: <?php class EmptyAction extends Action{ function _empty(){ header("HTTP/1.0 404 Not Found");//使HTTP返回404状态码 $this->display("Public:404"); } } ?> 使用apache服务器的情况下需在apache中的网站配置中加入 Err

  • 解密ThinkPHP3.1.2版本之模块和操作映射

    模板和操作映射功能是ThinkPHP3.1.2版本支持的对模块和操作设置的映射机制,由于可以通过改变配置动态改变(实际真正改变,并非别名)URL访问地址,加强了应用的安全性,而且,映射机制具有URL不区分大小写访问的特性,对于应用的迁移也有很大的帮助. 因为,普通情况下,如果需要更改URL的模块或者操作访问的话,需要改动的文件较多,容易导致关联性出错.尤其是很多应用需要迁移到新版本的时候,由于模型和控制器改动较多,导致URL地址出现大的调整,通过模块和操作映射功能,就可以很轻松的解决此类问题.

随机推荐