您好,欢迎访问一九零五行业门户网

ThinkPHP V2.2说明文档没有说明的那些事实例小结_php实例

本文实例讲述了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__,又或者在所有页面中加上, 如:
5.有些服务器上thinkphp框架会出现以下问题:
无法加载模块,这情况在是否有设置.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程序设计有所帮助。
其它类似信息

推荐信息