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 = tokenType(microtime(TRUE)) ;

应改为:tokenValue = is_callable(tokenType) ? $tokenType(microtime(TRUE)) : md5(microtime(TRUE));

否则会:执行报错!

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

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

  1. use Think\Upload\Driver\Bcs\BCS_RequestCore;  
  2. use Think\Upload\Driver\Bcs\BCS_ResponseCore;  
  3. use THink\Upload\Driver\Bcs\BCS_RequestCore_Exception;  



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

1筛选条件文件名不为空

2且HTTP头为2xx

应该改为如下:

  1. namespace Behavior;  
  2. use Think\Storage;  
  3. /** 
  4.  * 系统行为扩展:静态缓存写入 
  5.  */  
  6. class WriteHtmlCacheBehavior  
  7. {  
  8.   
  9.     // 行为扩展的执行入口必须是run  
  10.     public function run(&$content)  
  11.     {  
  12.         //2014-11-28 修改 如果有HTTP 4xx 3xx 5xx 头部,禁止存储  
  13.         //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  
  14.         if (C(‘HTML_CACHE_ON’) && defined(‘HTML_FILE_NAME’)  
  15.             && !preg_match(‘/Status.*[345]{1}\d{2}/i’, implode(‘ ‘, headers_list()))  
  16.             && !preg_match(‘/(-[a-z0-9]{2}){3,}/i’,HTML_FILE_NAME)  
  17.         ) {  
  18.             //静态文件写入  
  19.             Storage::put(HTML_FILE_NAME, $content‘html’);  
  20.         }  
  21.     }  
  22. }  

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