Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

hookscript() 函数的插件类是否存在的判断存在瑕疵

[复制链接]
Discuz+1 发表于 2012-8-7 07:51:24 | 显示全部楼层 |阅读模式

在 function_core.php 里面的 hookscript() 函数定义语句里
  1.      $classkey = (HOOKTYPE != 'hookscriptmobile' ? '' : 'mobile').'plugin_'.($hookfunc[0].($hscript != 'global' ? '_'.$hscript : ''));
  2.                                         if(!class_exists($classkey)) {
  3.                                                 continue;
  4.                                         }
复制代码
这里,class_exists() 的使用存在瑕疵。如果用户安装的插件出错,在未正常卸载的情况下直接手动删除插件目录,结果会导致 system_error 报告类不存在。原因在于 Discuz X 2.5 使用了类自动加载,而这里的class_exists() 没有使用第二个参数,于是 autoload() 被执行。

解决方案:  将 class_exists($classkey) 改为 class_exists($classkey,false) 即可。
huangliming 发表于 2012-8-7 12:16:11 | 显示全部楼层
收了,待进一步确认哦 :)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-2-27 04:51 , Processed in 0.025124 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表