首页 > 代码库 > ThinkPHP 3.2.3 bug 列表(2015-1-15)

ThinkPHP 3.2.3 bug 列表(2015-1-15)

下载TP 3.2.3,将本地的TP3.2.2升级。发现一些仍未修复和新的bug(欢迎交流,如需转载,请著名来自 default.fu@foxmail.com):



1)文件 ThinkPHP/Library/Behavior/TokenBuildBehavior.class.php 第47行:

原代码:$tokenValue =http://www.mamicode.com/ $tokenType(microtime(TRUE)) ;

应改为:$tokenValue = http://www.mamicode.com/is_callable($tokenType) ? $tokenType(microtime(TRUE)) : md5(microtime(TRUE));

否则会:执行报错!


2)文件:ThinkPHP/Library/Think/Upload/Driver/Bcs/requestcore.class.php 开头:

应该将开头的如下3行 namespace  注释掉,否则会报错重复定义!

use Think\Upload\Driver\Bcs\BCS_RequestCore;
use Think\Upload\Driver\Bcs\BCS_ResponseCore;
use THink\Upload\Driver\Bcs\BCS_RequestCore_Exception;


3)文件:ThinkPHP/Library/Behavior/WriteHtmlCacheBehavior.class.php 应该将 只允HTTP头为 2xx 的时候才保存本地缓存

1筛选条件文件名不为空

2且HTTP头为2xx

应该改为如下:

namespace Behavior;
use Think\Storage;
/**
 * 系统行为扩展:静态缓存写入
 */
class WriteHtmlCacheBehavior
{

    // 行为扩展的执行入口必须是run
    public function run(&$content)
    {
        //2014-11-28 修改 如果有HTTP 4xx 3xx 5xx 头部,禁止存储
        //2014-12-1 修改 对注入的网址 防止生成,例如 /game/lst/SortType/hot/-e8-90-8c-e5-85-94-e7-88-b1-e6-b6-88-e9-99-a4/-e8-bf-9b-e5-87-bb-e7-9a-84-e9-83-a8-e8-90-bd/-e9-a3-8e-e4-ba-91-e5-a4-a9-e4-b8-8b/index.shtml
        if (C('HTML_CACHE_ON') && defined('HTML_FILE_NAME')
            && !preg_match('/Status.*[345]{1}\d{2}/i', implode(' ', headers_list()))
            && !preg_match('/(-[a-z0-9]{2}){3,}/i',HTML_FILE_NAME)
        ) {
            //静态文件写入
            Storage::put(HTML_FILE_NAME, $content, 'html');
        }
    }
}


4)文件:ThinkPHP/Library/Think/Storage/Driver/File.class.php 第45行:

原代码:mkdir($dir,0755,true);

应改为:mkdir($dir,0777,true);

否则会:在部分主机比如WIN VPS下会出现写入权限问题,写入失败。


原创by default.fu@foxmail.com



ThinkPHP 3.2.3 bug 列表(2015-1-15)