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 相关文章推荐
基于asp+ajax和数据库驱动的二级联动菜单
May 06 PHP
PHP防止跨域提交表单
Nov 01 PHP
php实现文件编码批量转换
Mar 10 PHP
PHP的Yii框架中View视图的使用进阶
Mar 29 PHP
深入理解PHP 数组之count 函数
Jun 13 PHP
PHP制作登录异常ip检测功能的实例代码
Nov 16 PHP
CI框架AR数据库操作常用函数总结
Nov 21 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
Feb 18 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 PHP
PHP树形结构tree类用法示例
Feb 01 PHP
apache集成php7.3.5的详细步骤
Jun 20 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
Apr 07 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将数据导入到Foxmail的实现代码
2010/09/05 PHP
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
yii实现级联下拉菜单的方法
2014/07/31 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
jQuery中filter(),not(),split()使用方法
2010/07/06 Javascript
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
2015/04/03 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
jQuery实现的简单图片轮播效果完整示例
2018/02/08 jQuery
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
[01:11]回顾历届DOTA2国际邀请赛中国区预选赛
2017/06/26 DOTA
[04:16]完美世界DOTA2联赛PWL S2 集锦第一期
2020/11/23 DOTA
python判断设备是否联网的方法
2018/06/29 Python
python脚本实现mp4中的音频提取并保存在原目录
2020/02/27 Python
HTML5通用接口详解
2016/06/12 HTML / CSS
JAVA和C++区别都有哪些
2015/03/30 面试题
vue 中 get / delete 传递数组参数方法
2021/03/23 Vue.js
英文简历中的自我评价用语
2013/12/09 职场文书
公司晚会主持词
2014/03/22 职场文书
中学生学习保证书
2015/02/26 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
导游词之无锡梅园
2019/11/28 职场文书
Python使用random模块实现掷骰子游戏的示例代码
2021/04/29 Python
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技