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数据库抽象层 PDO
May 07 PHP
php中计算程序运行时间的类代码
Nov 03 PHP
mac下安装nginx和php
Nov 04 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 PHP
php实现发送微信模板消息的方法
Mar 07 PHP
PHP版微信公众平台红包API
Apr 02 PHP
WordPress过滤垃圾评论的几种主要方法小结
Jul 11 PHP
PHP的反射机制实例详解
Mar 29 PHP
phpmyadmin下载、安装、配置教程
May 16 PHP
Yii2压缩PHP中模板代码的输出问题
Aug 28 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
Mar 23 PHP
TP5框架实现签到功能的方法分析
Apr 05 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
文章推荐系统(三)
2006/10/09 PHP
PHP-MySQL教程归纳总结
2008/06/07 PHP
openflashchart 2.0 简单案例php版
2012/05/21 PHP
php过滤敏感词的示例
2014/03/31 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
php+mysql实现简单的增删改查功能
2015/07/13 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
jquery next nextAll nextUntil siblings的区别介绍
2013/10/05 Javascript
js清除input中type等于file的值域(示例代码)
2013/12/24 Javascript
nodejs读取memcache示例分享
2014/01/02 NodeJs
jQuery响应enter键的实现思路
2014/04/18 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
简单对比分析JavaScript中的apply,call与this的使用
2015/12/04 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
2016/07/09 Javascript
AngularJS监听路由变化的方法
2017/03/07 Javascript
[01:39:04]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第二场 2月1日
2021/03/11 DOTA
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
基于Python的自媒体小助手---登录页面的实现代码
2020/06/29 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
2020/11/17 Python
NFL欧洲商店(德国):NFL Europe Shop DE
2018/11/03 全球购物
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
如何让Java程序执行效率更高
2014/06/25 面试题
2014年惩防体系建设工作总结
2014/12/01 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
门店店长岗位职责
2015/04/14 职场文书
学校会议通知范文
2015/04/15 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL