zoukankan      html  css  js  c++  java
  • ThinkPHP V2.2 说明文档没有说明的那些事!!!

    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框架会出现以下问题:

    无法加载模块,这情况在是否有设置.htaccess文件无关。

    问题在于ThinkPHPLibThinkUtilDispatcher.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后面的值,包括/

  • 相关阅读:
    css实现鼠标悬浮字体流光背景模糊效果
    原生JS实现省市区(县)三级联动选择
    多线程的对象锁和类锁
    session、cookie与“记住我的登录状态”的功能的实现
    Java NIO FileVisitor 高效删除文件
    mysql 服务启动失败
    Http 协议详解
    设计模式 之 策略模式
    简单探讨 javascript 闭包
    数据库SQL优化大总结之 百万级数据库优化方案
  • 原文地址:https://www.cnblogs.com/gzmg/p/3483711.html
Copyright © 2011-2022 走看看