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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[BUG] 当UC中设置UCHOME使用“应用的物理路径”导致删除用户无法删除UCHOME相册问题

[复制链接]
MORR 发表于 2009-12-23 11:57:31 | 显示全部楼层 |阅读模式
本帖最后由 MORR 于 2009-12-23 12:12 编辑

查了老半天,终于发现了此BUG,前题:

在UC中设置UCHOME使用“应用的物理路径”。

然后在UC中删除用户,该用户所在UCHOME的图片都不能删除,BUG在所:

uchome:
api/uc.php 中的 deleteuser 触发,到 function_delete 的 deletespace 函数,再到 deletepicfiles 函数(删除图片文件)

问题出现在这句:
$file = $_SC['attachdir'].'./'.$pic['filepath'];
变量值类似:
$file = './attachment/./200912/23/27_126153975645jZ.jpg1';

如果此路径是在 uchome 访问的,没有问题,但是如果是在UC以“包含文件”形式访问的,就出问题了,开发人员应该能看明白。

解决办法:

修改 /config.php 中的
$_SC['attachdir']                = './attachment/';


$_SC['attachdir']                = S_ROOT.'./attachment/';


另外,在UC中删除用户,一定要再F5或者再浏览一次UC页面,才能“触发”通知。。。

评分

1

查看全部评分

 楼主| MORR 发表于 2009-12-23 12:05:01 | 显示全部楼层
如果已经是这样设置,并且存在删除用户的问题下,为了删除“尸体“,可以编程历遍附件目录,判断是已删除ID的“前缀”图片,并且该图片不存在于uchome_pic表中,即可以删除了。
回复

使用道具 举报

 楼主| MORR 发表于 2009-12-23 12:11:48 | 显示全部楼层
另外BBS没有这个问题,因为BBS在处理附件目录时已经转换为绝对路径了,所以在执行删除图片时是正常的:

@unlink($_DCACHE['settings']['attachdir'].'/'.$attach['attachment']);
回复

使用道具 举报

 楼主| MORR 发表于 2009-12-23 12:14:23 | 显示全部楼层
花了一个早上的时间,要分加哦。。。
回复

使用道具 举报

 楼主| MORR 发表于 2009-12-23 12:22:06 | 显示全部楼层
另外大家还反馈一个BUG,可以这样解决:

没有删除缩略图的BUG:
/source/function_delete.php

在 deletespace 函数中



"SELECT filepath FROM ".tname('pic')."

修改为

"SELECT filepath, thumb FROM ".tname('pic')."
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 09:11 , Processed in 0.038636 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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