首页 > 编程语言 >ThinkPHP自定义错误页面、成功页面及异常页面

ThinkPHP自定义错误页面、成功页面及异常页面

时间:2022-08-28 20:44:47浏览次数:78  
标签:自定义 html href ThinkPHP font 页面

[TP笔记]ThinkPHP自定义错误页面、成功页面及异常页面 | Specs' Blog-就爱PHP  https://9iphp.com/opensystem/thinkphp/999.html

看了前面分享的一篇《什么是真正的程序员?》,觉得自己离这个目标还差的很远,所以要抓紧朝着这个方向前进。作为一名PHP小码农,掌握一种框架是必须的。所以今天开始我们就从国产PHP框架 ThinkPHP 开始学起~

为什么会选择 ThinkPHP 呢?首先,作为一款国产PHP框架,文档肯定比国外那些框架要丰富的多,而且容易看懂;其次,ThinkPHP已经发展了七八年的时间了,相对来说已经比较成熟了;当然,最重要的是它比较轻量级,相对其他的框架来说比较容易上手,所以就选择了ThinkPHP。

 

好了话不多说,下面分享第一篇笔记~

ThinkPHP 作为一款轻量级PHP开发框架,它为我们提供了自带的错误页面、异常页面等信息提示页面,比如下面的代码会出现这样的提示:

  1. $this->error('验证码错误!');

ThinkPHPError页面

我们可以看到,自带的页面并不美观,所以我们需要自定义这些页面,ThinkPHP 为我们提供了自定义提示页面这样一种功能。

在配置文件中添加如下配置信息:

  1. /* 错误页面模板 */
  2. 'TMPL_ACTION_ERROR' => MODULE_PATH.'View/Public/error.html', // 默认错误跳转对应的模板文件
  3. 'TMPL_ACTION_SUCCESS' => MODULE_PATH.'View/Public/success.html', // 默认成功跳转对应的模板文件
  4. 'TMPL_EXCEPTION_FILE' => MODULE_PATH.'View/Public/exception.html',// 异常页面的模板文件

把这段配置信息放入到当前模型的 /Conf/config.php 中,然后在当前模型的 View 目录下创建 Public 文件夹,并在里面自定义 error.html success.html 及 exception.html 即可。

下面是一个简单的错误页面模板:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>跳转提示</title>
  6. <style type="text/css">
  7. *{ padding: 0; margin: 0; }
  8. body{ background: #290C0C; font-family: '微软雅黑'; color: #fff; font-size: 16px; }
  9. .system-message{ padding: 24px 48px; }
  10. .system-message h1{ font-size: 80px; font-weight: normal; line-height: 120px; margin-bottom: 12px }
  11. .system-message .jump{ padding-top: 10px;margin-bottom:20px}
  12. .system-message .jump a{ color: #333;}
  13. .system-message .success,.system-message .error{ line-height: 1.8em; font-size: 36px }
  14. .system-message .detail{ font-size: 12px; line-height: 20px; margin-top: 12px; display:none}
  15. #wait {
  16. font-size:46px;
  17. }
  18. #btn-stop,#href{
  19. display: inline-block;
  20. margin-right: 10px;
  21. font-size: 16px;
  22. line-height: 18px;
  23. text-align: center;
  24. vertical-align: middle;
  25. cursor: pointer;
  26. border: 0 none;
  27. background-color: #8B0000;
  28. padding: 10px 20px;
  29. color: #fff;
  30. font-weight: bold;
  31. border-color: transparent;
  32. text-decoration:none;
  33. }
  34.  
  35. #btn-stop:hover,#href:hover{
  36. background-color: #ff0000;
  37. }
  38. </style>
  39. </head>
  40. <body>
  41. <div class="system-message">
  42. <h1>抱歉,出错啦!</h1>
  43. <p class="error"><?php echo($error); ?></p>
  44. <p class="detail"></p>
  45. <p class="jump">
  46. <b id="wait"><?php echo($waitSecond); ?></b> 秒后页面将自动跳转
  47. </p>
  48. <div>
  49. <a id="href" id="btn-now" href="<?php echo($jumpUrl); ?>">立即跳转</a>
  50. <button id="btn-stop" type="button" onclick="stop()">停止跳转</button>
  51. <a id="href" id="btn-now" href="<?php echo(U('Public/logout')); ?>">重新登录</a>
  52. </div>
  53. </div>
  54. <script type="text/javascript">
  55. (function(){
  56. var wait = document.getElementById('wait'),href = document.getElementById('href').href;
  57. var interval = setInterval(function(){
  58. var time = --wait.innerHTML;
  59. if(time <= 0) {
  60. location.href = href;
  61. clearInterval(interval);
  62. };
  63. }, 1000);
  64. window.stop = function (){
  65. console.log(111);
  66. clearInterval(interval);
  67. }
  68. })();
  69. </script>
  70. </body>
  71. </html>

我们把上面的代码放到自定义 error.html 页面中,然后再看最开始的错误提示页面就会变成下面这样:

tp_error_2

 

 

标签:自定义,html,href,ThinkPHP,font,页面
From: https://www.cnblogs.com/jmbt/p/16633603.html

相关文章

  • 注解-自定义注解-属性定义以及元注解
    自定义注解-属性定义属性:接口中的抽象方法要求:1、属性的返回值类型基本数据类型String枚举注解......
  • UserServlet页面抽取、分类数据展示功能_分析
    UserServlet页面抽取  packagecn.itcast.travel.web.servlet;importcn.itcast.travel.domain.ResultInfo;importcn.itcast.travel.domain.User;importcn.itcast.......
  • 自定义类型和类型别名
    1.自定义类型在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型,Go语言中可以使用type关键字来定义自定义类型。type后面跟的是类型,写方法的时候......
  • 【PHP】【Mysql】【thinkphp】,Thinkphp save()方法执行update操作的返回值问题
    用Thinkphp的Save()方法执行update操作$res=M('erp_goods')->where(array('goods_id'=>$goods_id,'attr'=>$goods_attr))->save($data);if($res===false......
  • ThinkPHP add()操作的返回值
    今天做数据库操作的时候,发现有个问题看似容易,但是还可以有更方便的解决方法。当数据表中的主键字段是自增的时候,当我们用add插入数据成功之后,其实add()方法是有返回值的,原......
  • 低代码平台amis学习 二:写一个页面
    上一节完成了amis的部署,这次来写一个简单页面 如果看过amis入门文档的话,应该知道amis是通过json文件来生成前端页面的,在实际编写json文件的过程中,并不需要自己逐行书写j......
  • Spring源码-自定义标签
    一、新建实体类publicclassUserimplementsSerializable{privateStringid;privateStringname;privateIntegerage;publicStringgetId(){ return......
  • 通过自定义指令对button进行权限的校验
    通过自定义指令对button进行权限的校验场景:左侧菜单栏通过调接口获取,每一个菜单下的还有该菜单下的button的权限操作,在mentType为2时,该children就是button权限列表1.先获......
  • vue自定义实现虚拟化列表
     1使用<ViualList:size="40":remain="8":dataList="dataList"></ViualList>size:每个列表的高度Heightremain:当前屏幕展示数据个数dataList:当前数据2自定义......
  • 多路由复用页面组件问题
    本文围绕VueRouter中路由组件复用问题展开场景复现项目中经常会遇到增改查的需求,通常采用不同的路由指向同一个页面组件,以此到达复用页面的功能,但是复用页面存在一......