ThinkPHP V2.2说明文档没有说明的那些事实例小结


Posted in PHP onJuly 01, 2015

本文实例讲述了ThinkPHP V2.2说明文档没有说明的那些事。分享给大家供大家参考。具体分析如下:

以下是总结一下说明文档没有提及和详细说明的内容:(日后不断更新)

1. 在配置文件中设置了APP_DEBUG为true,进入debug模式的时候,页面默认是不会显示trace信息信息的。

解决方法:'SHOW_PAGE_TRACE'=>true 加上这个就可以了。

2.action 内的success 方法只需要存入两个参数 success($message,$ajax=false),调用的页面是没写也会显示。

解决方法:要在配置文件中加上:
'TMPL_ACTION_SUCCESS'     => 'Public:success'(错误跳转:'TMPL_ACTION_ERROR'     => 'Public:success')

其实2.2版本中默认设置是这样的:

'TMPL_ACTION_ERROR'     => THINK_PATH.'/Tpl/dispatch_jump.html'。

3.用普通标签load模板引擎直接无视。

解决方法:无(还没找到原因)

4.__ROOT__在模板输入只会是空字符,在页面跳转后就不能用__ROOT__地址回到首页了。

解决方法:自己去修改__ROOT__,又或者在所有页面中加上<base href='http://网站访问根目录地址' />, 如:<base href='http://winesbox.com' />

5.有些服务器上ThinkPHP框架会出现以下问题:

ThinkPHP V2.2说明文档没有说明的那些事实例小结

无法加载模块,这情况在是否有设置.htaccess文件无关。

问题在于ThinkPHP\Lib\Think\Util\Dispatcher.class.php中的getPathInfo方法中

此方法是重新负值于$_SERVER['PATH_INFO'],问题就来了

$_SERVER['PATH_INFO']
$_SERVER['ORIG_PATH_INFO']
$_SERVER['REDIRECT_PATH_INFO']
$_SERVER["REDIRECT_URL"]

以上的系统变量不一定有,这个是全蛋疼的事,所以getPathInfo会一路判断有哪个就要怎么处理什么的。

出问题的地方在于判断有$_SERVER["REDIRECT_URL"]之后的操作,原码:

$path = $_SERVER["REDIRECT_URI"];
if(empty($_SERVER['QUERY_STRING']) || $_SERVER['QUERY_STRING'] == $_SERVER["REDIRECT_QUERY_STRING"]) {
$parsedUrl = parse_url($_SERVER["REQUEST_URL"]);
if(!empty($parsedUrl['query'])) {
$_SERVER['QUERY_STRING'] = $parsedUrl['query'];
parse_str($parsedUrl['query'], $GET);
$_GET = array_merge($_GET, $GET);
reset($_GET);
}else {
unset($_SERVER['QUERY_STRING']);
}
reset($_SERVER);
}

标成红色的就是出错的原因,改成REQUEST_URI就会正常的了。

*注:$_SERVER["REQUEST_URI"] 获取http://blog.lpreterite.com后面的值,包括/

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

PHP 相关文章推荐
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
Nov 14 PHP
rrmdir php中递归删除目录及目录下的文件
May 15 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
ThinkPHP分页实例
Oct 15 PHP
php基于Snoopy解析网页html的方法
Jul 09 PHP
Zend Framework教程之Zend_Config_Ini用法分析
Mar 23 PHP
iOS+PHP注册登录系统 PHP部分(上)
Dec 26 PHP
给大家分享几个常用的PHP函数
Jan 15 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
PHP实现腾讯与百度坐标转换
Aug 05 PHP
thinkPHP框架实现的简单计算器示例
Dec 07 PHP
PHP的mysqli_set_charset()函数讲解
Jan 23 PHP
PHP判断是否连接上网络的方法
Jul 01 #PHP
PHP抓取网页、解析HTML常用的方法总结
Jul 01 #PHP
PHP中static关键字以及与self关键字的区别
Jul 01 #PHP
PHP单例模式详细介绍
Jul 01 #PHP
curl和libcurl的区别简介
Jul 01 #PHP
PHP+Ajax实时自动检测是否联网的方法
Jul 01 #PHP
PHP超全局数组(Superglobals)介绍
Jul 01 #PHP
You might like
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
greybox——不开新窗口看新的网页
2007/02/20 Javascript
javascript 框架小结 个人工作经验
2009/06/13 Javascript
jQuery Ajax请求状态管理器打包
2012/05/03 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
Javascript实现动态菜单添加的实例代码
2013/07/05 Javascript
使用jQuery插件创建常规模态窗口登陆效果
2013/08/23 Javascript
使用JavaScript 编写简单计算器
2014/11/24 Javascript
生成二维码方法汇总
2014/12/26 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
2015/09/18 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
2017/03/21 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[51:29]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第一场 11.05
2020/11/05 DOTA
运用TensorFlow进行简单实现线性回归、梯度下降示例
2018/03/05 Python
实例讲解Python爬取网页数据
2018/07/08 Python
css3实现3D色子翻转特效
2014/12/23 HTML / CSS
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
个人借款担保书
2014/04/02 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
高中教师个人工作总结
2015/02/10 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
毕业感言怎么写
2015/07/31 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
Nginx反向代理配置的全过程记录
2021/06/22 Servers