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 parse_url 一个好用的函数
Oct 03 PHP
兼容性比较好的PHP生成缩略图的代码
Jan 12 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
Nov 07 PHP
php基础教程 php内置函数实例教程
Aug 21 PHP
基于PHP遍历数组的方法汇总分析
Jun 08 PHP
分享PHP header函数使用教程
Sep 05 PHP
ThinkPHP的L方法使用简介
Jun 18 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
Nov 07 PHP
ThinkPHP中Session用法详解
Nov 29 PHP
PHP中异常处理的一些方法整理
Jul 03 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
Mar 22 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
Apr 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
PHP中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
jquery关于图形报表的运用实现代码
2011/01/06 Javascript
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
2012/11/08 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
nodeJS模块简单用法示例
2018/04/21 NodeJs
基于JavaScript实现一个简单的Vue
2018/09/26 Javascript
小程序实现新用户判断并跳转激活的方法
2019/05/20 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
mpvue 页面预加载新增preLoad生命周期的两种方式
2019/10/17 Javascript
ant design vue中表格指定格式渲染方式
2020/10/28 Javascript
Python for Informatics 第11章之正则表达式(四)
2016/04/21 Python
Python提取网页中超链接的方法
2016/09/18 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
python实现计算器功能
2019/10/31 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
2020/08/07 Python
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
俄罗斯化妆品和香水网上商店:Iledebeaute
2019/01/03 全球购物
新加坡网上美容店:Hermo新加坡
2019/06/19 全球购物
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
领导视察欢迎词
2014/01/15 职场文书
医生进修自我鉴定
2014/01/19 职场文书
开会迟到检讨书
2014/02/03 职场文书
推荐信模板
2014/05/09 职场文书
中国合伙人观后感
2015/06/02 职场文书
哈姆雷特读书笔记
2015/06/29 职场文书
工作服管理制度范本
2015/08/06 职场文书
小区物业管理2015年度工作总结
2015/10/22 职场文书
php7中停止php-fpm服务的方法详解
2021/05/09 PHP