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实现与ASP Banner组件相似的类
Oct 09 PHP
php的字符串用法小结
Jun 08 PHP
php INI配置文件的解析实现分析
Jan 04 PHP
浅谈PHP强制类型转换,慎用!
Jun 06 PHP
PHP 获取远程文件大小的3种解决方法
Jul 11 PHP
php header功能的使用
Oct 28 PHP
php定义数组和使用示例(php数组的定义方法)
Mar 29 PHP
javascript some()函数用法详解
Nov 13 PHP
php绘制一个矩形的方法
Jan 24 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
Jun 13 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
Nov 28 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 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
150kHz到30Mhz完全冲浪手册
2020/03/20 无线电
PHP邮件专题
2006/10/09 PHP
PHP+MySQL5.0中文乱码解决方法
2006/11/20 PHP
两个开源的Php输出Excel文件类
2010/02/08 PHP
PHP获取数组中重复最多的元素的实现方法
2014/11/11 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
图片自动更新(说明)
2006/10/02 Javascript
如何判断图片地址是否失效
2007/02/02 Javascript
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
2012/05/24 Javascript
jquery实现倒计时效果
2015/12/14 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
2018/08/19 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
2018/10/19 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
Python文件读取的3种方法及路径转义
2015/06/21 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
2018/10/14 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
2018/12/17 Python
python生成带有表格的图片实例
2019/02/03 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
CSS3制作日历实现代码
2012/01/21 HTML / CSS
基于html5 DeviceOrientation 实现微信摇一摇功能
2015/09/25 HTML / CSS
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
师范教师毕业鉴定
2014/01/13 职场文书
庆祝新中国成立65周年“向国旗敬礼”网上签名寄语
2014/09/27 职场文书
汽车机电维修工求职信
2014/09/30 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
JavaScript异步操作中串行和并行
2021/11/20 Javascript