Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1401674
  • 博文数量: 350
  • 博客积分: 12557
  • 博客等级: 上将
  • 技术积分: 3621
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-22 07:33
文章分类

全部博文(350)

文章存档

2014年(2)

2013年(1)

2012年(15)

2011年(46)

2010年(61)

2009年(80)

2008年(80)

2007年(65)

分类: LINUX

2010-03-11 10:21:44

问题简述
=================================

Discuz!
5.5 在应用20090817补丁后,出现如下错误:
- 无法新增广告
- 进入版块列表浏览主题时(forumdisplay.php),下面的快速回复中表情列表显示空白,顶部提示如下错误:
Warning: Invalid argument supplied for foreach() in H:\WebDev\Win2003_WWWROOT\bbsother\dz55\forumdisplay.php on line 82

- 后台更新缓存后故障暂时消失、但后台重新设置后,故障重现。
以上问题可能会导致某些新的攻击。


=================================
站长专区
=================================

站长临时解决方法:

Discuz! 5.5用户在应用了官方20090817补丁后,请重新打开include/cache.func.php,将以下代码:
  1.                 if(!preg_match("/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/", $key)) {
  2.                         continue;
  3.                 }
复制代码
修改为:
  1.                 if(!preg_match("/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/", $key) && !preg_match("/^_DCACHE\['[a-zA-Z0-9_]+\'\]$/",$key)) {
  2.                         continue;
  3.                 }
复制代码
然后用新的cache.func.php覆盖之。
最后用FTP重新删除论坛 forumdata/cache/ 目录里面的所有文件,让论坛自动重新生成即可。

问题解答:
Q1:本修改和http://www.discuz.net/thread-1391381-1-1.html上的修改有什么不同?
A1:本修改的判断理论上将更加严格。

Q2:“站长临时解决方法”给出的修改代码好像有一句多余的语句哦?怎么回事?
A2:经复查,确实有一句多余语句:
  1. echo $key."
    ";
复制代码
此句为调试语句,在给出临时方案时由于疏忽,没有去掉而直接公布在此。
现重新修改,去掉该段调试语句。
请2009-8-25 19:37之前修改的站长,把以上调试语句去掉。
对此造成的不便表示歉意,并感谢热心站长的指出。
 
客户的discuz!遇到了同样的问题,在网上搜到上述文章。
阅读(1034) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~