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 相关文章推荐
用文本文件制作留言板提示(下)
Oct 09 PHP
discuz7 phpMysql操作类
Jun 21 PHP
PHP parse_url 一个好用的函数
Oct 03 PHP
php读取EXCEL文件 php excelreader读取excel文件
Dec 06 PHP
深入Memcache的Session数据的多服务器共享详解
Jun 13 PHP
使用PHP实现蜘蛛访问日志统计
Jul 05 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
Apr 30 PHP
浅析ThinkPHP的模板输出功能
Jul 01 PHP
php防止站外远程提交表单的方法
Oct 20 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
Sep 21 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
Dec 21 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开发GUI
2006/10/09 PHP
php文件上传表单摘自drupal的代码
2011/02/15 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
2013/07/03 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
分享8款优秀的 jQuery 加载动画和进度条插件
2012/10/24 Javascript
基于jquery中children()与find()的区别介绍
2013/04/26 Javascript
js中的前绑定和后绑定详解
2013/08/01 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
JavaScript获取URL汇总
2015/06/08 Javascript
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
JavaScript SHA-256加密算法详细代码
2016/10/06 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
微信小程序新增的拖动组件movable-view使用教程
2017/05/20 Javascript
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
angularjs实现简单的购物车功能
2017/09/21 Javascript
微信小程序实现弹出菜单
2018/07/19 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
python避免死锁方法实例分析
2015/06/04 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
Django3中的自定义用户模型实例详解
2020/08/23 Python
在终端启动Python时报错的解决方案
2020/11/20 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
html5实现输入框fixed定位在屏幕最底部兼容性
2020/07/03 HTML / CSS
医生自荐信
2013/10/11 职场文书
表彰会主持词
2014/03/26 职场文书
机关搬迁方案
2014/05/18 职场文书
现场活动策划方案
2014/08/22 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python
Windows server 2012搭建FTP服务器
2022/04/29 Servers
hive数据仓库新增字段方法
2022/06/25 数据库
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers