ThinkPhp关闭Debug后出错解决方案
注:我使用的是ThinkPHP的3.2版本,其他版本类似
从自己入手PHP开发以来,一直使用的是ThinkPHP的框架,前几天偶然间碰到了一个错误,在Debug模式下网站一切正常,而关闭Debug进行部署的时候有些页面却出现了错误无法执行,自己也是百思不得其解,经过自己的各种尝试终于还是找到了错误原因.
·先贴出来一个简单的错误原型
<?php
namespace Home\Controller;
use Think\Controller;
class testController extends Controller
{
public function index(){
echo "Test";
}
public function show(){ }
}
检查一下上面代码的语法,可以看出控制器内就只有两个简单的函数,语法上根本就没有错误!
① 我们开启Debug测试:
输入链接: http://localhost/Index.php?m=Home&c=Test&a=Index ,执行的结果如下图,显示出了Test文字,一切正常:
② 我们关闭Debug在测试
输入链接: http://localhost/Index.php?m=Home&c=Test&a=Index ,执行的结果如下图,“页面错误!请稍后再试~”直接挂了…
当时出现这种情况的时候我也纠结了,我尝试着把代码中的函数一个一个清空,结果关闭Debug后还是出错,后来我想到了是不是函数名字的问题,结果误打误撞还真是这个问题,在上面的错误代码中我使用了一个名字为show的函数,当我们把show函数改成其他名字的时候,例如show1(),问题就解决了233
·解决方案
在上面的错误原型分析中我们可以看出,这种错误是由于你的函数命名的问题,我们自己的Controller是继承自ThinkPHP的Controller,当你在自己的Controller中的函数命名与ThinkPHP中的Controller类内函数有重名的时候,就会出现Debug下正常,关闭Debug就挂掉的现象.
所以总的来说,在我们自己的Controller中要避免使用与ThinkPhp中的Controller类有重名的函数名,这样关闭Debug出错的问题就解决了.
//注意重名函数有: show();
redirect();
·附上ThinPHP的Controller类的位置
/ThinkPHP/Library/Think/Controller.class.php
在使用一些常用的函数名的时候最好去瞄瞄那个Controller类里面是否有了.
原文章地址:http://www.youranshare.com/blog/sid/46.html
ThinkPhp关闭Debug后出错解决方案的更多相关文章
- Django 关闭Debug后使用Nginx做静态文件的访问
Django 关闭Debug后使用Nginx做静态文件的访问 关闭Django 的Debug参数 1 . 修改settings.py配置文件 DEBUG = False 2 . settings.py ...
- django关闭debug后,静态文件的处理
Django框架仅在开发模式下提供静态文件服务.当我开启DEBUG模式时,Django内置的服务器是提供静态文件的服务的,所以css等文件访问都没有问题,但是关闭DEBUG模式后,Django便不提供 ...
- django关闭DEBUG后 static静态文件都访问不了
Django框架仅在开发模式下提供静态文件服务.当我开启DEBUG模式时,Django内置的服务器是提供静态文件的服务的,所以css等文件访问都没有问题,但是关闭DEBUG模式后,Django便不提供 ...
- django在关闭debug后,admin界面 及静态文件无法加载的解决办法
当debug为true的时候,ALLOWED_HOSTS是跳过不管用的.所以这里需要将debug关掉,令debug=false,ALLOWED_HOSTS=[ '*' ]表示所有的主机都可以访问 开启 ...
- 设置Django关闭Debug后的静态文件路由
Django在Debug模式关闭掉后请求静态文件时,返回404相应码,后台的请求url是"GET /static/css/404.css HTTP/1.1" 404 1217,找不 ...
- Django项目关闭debug模式后,静态文件无法加载的解决办法
开启内置服务器,由于项目中local_settings.py文件中的DEBUG=True,进行开发和调试一直没什么问题. 但是现在需要编写404,500等出错页面,在debug模式下出了错都会出现报错 ...
- thinkphp关闭调试模式(APP_DEBUG => false),导致程序出错
thinkphp关闭调试模式(APP_DEBUG => false),导致程序出错,开启调试模式,不报错,怎么解决? 查看Logs日志记录: [ --29T09::+: ] 113.108.11 ...
- Struts2添加了<s:debug>后页面无效果的解决方案
一.环境 Struts2版本 struts2.5 二.问题 在jsp页面中添加了<s:debug>后页面上无任何展示. 三.解决 在struts.xml中的struts节点下添加如下常量即 ...
- 解决ThinkPHP关闭调试模式时报错的问题汇总
解决ThinkPHP关闭调试模式时报错的问题汇总 案例一: 最近用ThinkPHP开发一个项目,本地开发测试完成上传到服务器后,第一次打开正常,再刷新页面时就出现 "页面调试错误,无法找开页 ...
随机推荐
- 终端登入mysql
mysql -u 用户名 -p 输入密码 1. 给root用户添加密码,密码为root mysqladmin -u root -p password root 2. 通过终端连接ser ...
- windows 线程
在windows中进程只是一个容器,用于装载系统资源,它并不执行代码,它是系统资源分配的最小单元,而在进程中执行代码的是线程,线程是轻量级的进程,是代码执行的最小单位. 从系统的内核角度看,进程是一个 ...
- 关于java中,json字符串转集合和对象,或者集合转json字符串的解决方法
1 List集合转成json字符串 //Java集合 List<String> list = new ArrayList<String>(); list.add("a ...
- mwValidate.js验证插件
这段时间在公司一直做项目的同时,也学了下js,感觉有必要做一些什么东西出来.思来想去就做了最简单的一个验证插件.我很清楚这个东西市面上已经很多了,但我的目的也很清楚,检验我的学习成果.所以也就无所谓了 ...
- 【Java学习笔记之十三】初探Java面向对象的过程及代码实现
理解Java面向对象的重要知识点: 一. 类,对象 类?首先举一个例子:小李设计了一张汽车设计图,然后交给生产车间来生产汽车,有黑色的.红色的.白色的... 这里,汽车设计图就是我们说的类(class ...
- 51Nod 1016 水仙花数 V2(组合数学,枚举打表法)
1016 水仙花数 V2 基准时间限制:1 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 水仙花数是指一个 n 位数 ( n≥3 ) ...
- Codeforces Round #345 (Div. 2)【A.模拟,B,暴力,C,STL,容斥原理】
A. Joysticks time limit per test:1 second memory limit per test:256 megabytes input:standard input o ...
- Codeforces 626E Simple Skewness(暴力枚举+二分)
E. Simple Skewness time limit per test:3 seconds memory limit per test:256 megabytes input:standard ...
- BZOJ1304: [CQOI2009]叶子的染色
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1304 树形dp. 可以发现其实根选在哪里都是没有问题的. f[u][0],f[u][1],f[ ...
- 2017西安网络赛 F
f(cos(x))=cos(n∗x) holds for all xx. Given two integers nn and mm, you need to calculate the coeffic ...