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 相关文章推荐
apache mysql php 源码编译使用方法
May 03 PHP
PHP中全局变量global和$GLOBALS[]的区别分析
Aug 06 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
Nov 15 PHP
php构造函数的继承方法
Feb 09 PHP
详解PHP+AJAX无刷新分页实现方法
Nov 03 PHP
使用PHPMailer发送邮件实例
Feb 15 PHP
PHP实现ASCII码与字符串相互转换的方法
Apr 29 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
May 29 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
PDO::lastInsertId讲解
Jan 29 PHP
laravel5.6实现数值转换
Oct 23 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中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
prototype Element学习笔记(篇二)
2008/10/26 Javascript
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
2010/03/27 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
jQuery旋转插件jqueryrotate用法详解
2016/10/13 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
Nodejs--post的公式详解
2017/04/29 NodeJs
ES6入门教程之Iterator与for...of循环详解
2017/05/17 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
使用jQuery实现简单的tab框实例
2017/08/22 jQuery
微信小程序switch组件使用详解
2018/01/31 Javascript
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
细述Javascript的加法运算符的具体使用
2019/10/18 Javascript
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
Python脚本实现虾米网签到功能
2016/04/12 Python
python实现拓扑排序的基本教程
2018/03/11 Python
python多进程实现文件下载传输功能
2018/07/28 Python
Django的models模型的具体使用
2019/07/15 Python
python异步Web框架sanic的实现
2020/04/27 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
2020/05/07 Python
python如何安装下载后的模块
2020/07/03 Python
python用Configobj模块读取配置文件
2020/09/26 Python
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
如何查询Oracle数据库中已经创建的索引
2013/10/11 面试题
母亲节演讲稿范文
2014/01/02 职场文书
大学生创业策划书
2014/02/02 职场文书
黄河象教学反思
2014/02/10 职场文书
服务理念口号
2014/06/11 职场文书