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 相关文章推荐
xajax写的留言本
Nov 25 PHP
php木马攻击防御之道
Mar 24 PHP
PHP 用数组降低程序的时间复杂度
Dec 04 PHP
php常用的url处理函数总结
Nov 19 PHP
PHP使用JSON和将json还原成数组
Feb 12 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
Apr 08 PHP
Laravel 5 框架入门(三)
Apr 09 PHP
php实现的SSO单点登录系统接入功能示例分析
Oct 12 PHP
PHP使用strrev翻转中文乱码问题的解决方法
Jan 13 PHP
thinkPHP框架中layer.js的封装与使用方法示例
Jan 18 PHP
PHP中$GLOBALS与global的区别详解
Mar 21 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
Oct 14 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载入页面时编码的方法
2014/07/29 PHP
关于jQuery中.attr()和.prop()的问题探讨
2013/09/06 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
js 数组操作之pop,push,unshift,splice,shift
2014/01/29 Javascript
JavaScript使用循环和分割来替换和删除元素实例
2014/10/13 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
js实现select跳转菜单新窗口效果代码分享(超简单)
2015/08/21 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
2016/07/22 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
Vue验证码60秒倒计时功能简单实例代码
2018/06/22 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
JS实现简单tab选项卡切换
2019/10/25 Javascript
Python设置默认编码为utf8的方法
2016/07/01 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
设置python3为默认python的方法
2018/10/31 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
用pycharm开发django项目示例代码
2019/06/13 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
CSS3 Backgrounds属性相关介绍
2011/05/11 HTML / CSS
css3实现3D文本悬停改变效果的示例代码
2019/01/16 HTML / CSS
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
爱尔兰旅游网站:ebookers.ie
2020/01/24 全球购物
乔丹名人堂演讲稿
2014/05/24 职场文书
中班教师个人总结
2015/02/05 职场文书