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的几个常用数字判断函数代码
Apr 24 PHP
PHP连接Access数据库的方法小结
Jun 20 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
Mar 31 PHP
linux下php上传文件注意事项
Jun 11 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
Jul 18 PHP
Django中的cookie与session操作实例代码
Aug 17 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
总结PHP中初始化空数组的最佳方法
Feb 13 PHP
PHP get_html_translation_table()函数用法讲解
Feb 16 PHP
PHP封装的分页类与简单用法示例
Feb 25 PHP
PHP判断当前使用的是什么浏览器(推荐)
Oct 27 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
May 02 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
用PHP与XML联手进行网站编程代码实例
2008/07/10 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
javascript GUID生成器实现代码
2009/10/31 Javascript
DD_belatedPNG,IE6下PNG透明解决方案(国外)
2010/12/06 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
移动开发之自适应手机屏幕宽度
2016/11/23 Javascript
NodeJs通过async/await处理异步的方法
2017/10/09 NodeJs
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
2020/10/31 Javascript
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
[01:15:56]2018DOTA2亚洲邀请赛3月30日 小组赛A组 TNC VS Newbee
2018/03/31 DOTA
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
django Serializer序列化使用方法详解
2018/10/16 Python
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
Flask框架web开发之零基础入门
2018/12/10 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
销售业务员岗位职责
2014/01/29 职场文书
《小松树和大松树》教学反思
2014/02/20 职场文书
亮化工程实施方案
2014/03/17 职场文书
预备党员承诺书
2014/03/25 职场文书
岗位聘任书范文
2014/03/29 职场文书
环保倡议书300字
2014/05/15 职场文书
优秀学生干部先进事迹材料
2014/05/26 职场文书
机关党员四风问题个人整改措施
2014/10/26 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书