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 相关文章推荐
留言板翻页的实现详解
Oct 09 PHP
php 时间计算问题小结
Jan 04 PHP
php下过滤html代码的函数 提高程序安全性
Mar 02 PHP
不重新编译PHP为php增加openssl模块的方法
Jun 14 PHP
thinkphp的CURD和查询方式介绍
Dec 19 PHP
php+ajax实现图片文件上传功能实例
Jun 17 PHP
php与flash as3 socket通信传送文件实现代码
Aug 16 PHP
PHP基于MySQL数据库实现对象持久层的方法
Jun 17 PHP
详细解读PHP中接口的应用
Aug 12 PHP
PHP getallheaders无法获取自定义头(headers)的问题
Mar 23 PHP
yii通过小物件生成view的方法
Oct 08 PHP
Yii2语言国际化自动配置详解
Aug 22 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
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
php发送http请求的常用方法分析
2016/11/08 PHP
利用 fsockopen() 函数开放端口扫描器的实例
2017/08/19 PHP
[JS]点出统计器
2020/10/11 Javascript
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
2014/01/09 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
Javascript OOP之面向对象
2016/07/31 Javascript
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
Angular4.0中引入laydate.js日期插件的方法教程
2017/12/25 Javascript
使用vuex解决刷新页面state数据消失的问题记录
2019/05/08 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
python3编写C/S网络程序实例教程
2014/08/25 Python
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
Python面向对象之继承代码详解
2018/01/29 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
python3中函数参数的四种简单用法
2018/07/09 Python
pandas数据集的端到端处理
2019/02/18 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
python tkinter之 复选、文本、下拉的实现
2020/03/04 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
python实时监控logstash日志代码
2020/04/27 Python
python实现人工蜂群算法
2020/09/18 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
python 基于opencv操作摄像头
2020/12/24 Python
技能比赛获奖感言
2014/02/14 职场文书
人代会标语
2014/06/30 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
2016年学习雷锋精神广播稿
2015/12/17 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers