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 相关文章推荐
centos 5.6 升级php到5.3的方法
May 14 PHP
PHP中file_exists与is_file,is_dir的区别介绍
Sep 12 PHP
php把session写入数据库示例
Feb 26 PHP
PHP文件缓存内容保存格式实例分析
Aug 20 PHP
php获取指定日期之间的各个周和月的起止时间
Nov 24 PHP
php获取字符串中各个字符出现次数的方法
Feb 23 PHP
php数组转成json格式的方法
Mar 09 PHP
thinkphp3.2点击刷新生成验证码
Feb 16 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
PHP设计模式之PHP迭代器模式讲解
Mar 22 PHP
php + WebUploader实现图片批量上传功能
May 06 PHP
laravel Validator ajax返回错误信息的方法
Sep 29 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编程语言开发动态WAP页面
2006/10/09 PHP
PHP学习笔记之三 数据库基本操作
2011/01/17 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
理解Javascript_13_执行模型详解
2010/10/20 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
BACKBONE.JS 简单入门范例
2017/10/17 Javascript
vue-cli webpack 引入jquery的方法
2018/01/10 jQuery
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
2018/08/03 jQuery
vue 配置多页面应用的示例代码
2018/10/22 Javascript
用JavaScript实现贪吃蛇游戏
2020/10/23 Javascript
jQuery实现可以计算进制转换的计算器
2020/10/19 jQuery
React实现评论的添加和删除
2020/10/20 Javascript
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
2020/11/12 Javascript
[03:08]TI9战队档案 - Vici Gaming
2019/08/20 DOTA
Python获取DLL和EXE文件版本号的方法
2015/03/10 Python
介绍Python中几个常用的类方法
2015/04/08 Python
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
python导出hive数据表的schema实例代码
2018/01/22 Python
解析Python的缩进规则的使用
2019/01/16 Python
django写用户登录判定并跳转制定页面的实例
2019/08/21 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
2020/06/10 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
英国著名国际平价时尚男装品牌:Topman
2016/08/27 全球购物
个性大学生自我评价
2013/12/04 职场文书
城市规划应届毕业生自荐信
2014/07/04 职场文书
高中生第一学年自我鉴定2015
2014/09/28 职场文书
深入浅析React中diff算法
2021/05/19 Javascript
Java Spring读取和存储详细操作
2022/08/05 Java/Android