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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

无法删除他人附件的解决办法

[复制链接]
ted1006 发表于 2011-5-11 13:05:15 | 显示全部楼层 |阅读模式
目前的程序中无法删除非本人上传的附件,修正后,拥有管理权限的用户则可以正常删除他人附件了。

1、找到文件 source/module/forum/forum_ajax.php 的 106 行附近,找到
  1. } elseif($_G['gp_action'] == 'deleteattach') {

  2.         if($_G['gp_aids']) {
  3.                 foreach($_G['gp_aids'] as $aid) {
  4.                         $query = DB::query("SELECT uid, attachment, thumb, remote, aid FROM ".DB::table(getattachtablebyaid($aid))." WHERE aid='$aid' AND uid='$_G[uid]'");
  5.                         if(DB::num_rows($query)) {
  6.                                 DB::delete(getattachtablebyaid($aid), "aid='$aid'");
  7.                                 DB::delete('forum_attachment', "aid='$aid'");
  8.                         }
  9.                         while($attach = DB::fetch($query)) {
  10.                                 dunlink($attach);
  11.                         }
  12.                 }
  13.         }
  14.         include template('common/header_ajax');
  15.         echo count($_G['gp_aids']);
  16.         include template('common/footer_ajax');
  17.         dexit();
复制代码
修改为
  1. } elseif($_G['gp_action'] == 'deleteattach') {

  2.         $count = 0;
  3.         if($_G['gp_aids']) {
  4.                 foreach($_G['gp_aids'] as $aid) {
  5.                         $attach = DB::fetch_first("SELECT * FROM ".DB::table(getattachtablebyaid($aid))." WHERE aid='$aid'");
  6.                         if($attach && ($attach['pid'] && $attach['pid'] == $_G['gp_pid'] && $_G['uid'] == $attach['uid'] || $_G['forum']['ismoderator'] || !$attach['pid'] && $_G['uid'] == $attach['uid'])) {
  7.                                 DB::delete(getattachtablebyaid($aid), "aid='$aid'");
  8.                                 DB::delete('forum_attachment', "aid='$aid'");
  9.                                 dunlink($attach);
  10.                                 $count++;
  11.                         }
  12.                 }
  13.         }
  14.         include template('common/header_ajax');
  15.         echo $count;
  16.         include template('common/footer_ajax');
  17.         dexit();
复制代码
2、找到文件 template/default/forum/post.htm 的 6 行附近,找到
  1. var pid = parseInt('$pid');
复制代码
在他下面添加一行,修改后为
  1. var pid = parseInt('$pid');
  2. var tid = parseInt('$_G[tid]');
复制代码
3、找到文件 static/js/forum_post.js 的 399 行附近,找到
  1. x.get('forum.php?mod=ajax&action=deleteattach&inajax=yes' + aids, function() {});
复制代码
修改为
  1. x.get('forum.php?mod=ajax&action=deleteattach&inajax=yes&tid=' + tid + '&pid=' + pid + aids, function() {});
复制代码

评分

4

查看全部评分

下砂 发表于 2011-5-11 13:05:52 | 显示全部楼层
支持下
回复

使用道具 举报

www.ou99.com 发表于 2011-5-11 13:12:52 | 显示全部楼层
不行,还是删不了
回复

使用道具 举报

www.ou99.com 发表于 2011-5-11 13:21:16 | 显示全部楼层
不行,无效啊
回复

使用道具 举报

www.ou99.com 发表于 2011-5-11 13:28:34 | 显示全部楼层
没有效果
回复

使用道具 举报

zhouen 发表于 2011-5-11 13:28:47 | 显示全部楼层
顶,谢谢解决问题,还有很多问题哦,我反馈并确定的就还有好几个,21号还有10天,加油!!
回复

使用道具 举报

1034440658 发表于 2011-5-11 13:28:50 | 显示全部楼层
回复

使用道具 举报

zhouen 发表于 2011-5-11 13:37:50 | 显示全部楼层
测试报告:

这样改后,不仅管理员删除不掉图片,发帖人自己也删除不掉了
回复

使用道具 举报

washun 发表于 2011-5-11 13:39:37 | 显示全部楼层
回复

使用道具 举报

江海博客网 发表于 2011-5-11 13:40:02 | 显示全部楼层
有用吗,怎么楼上几个说米用啊
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 18:52 , Processed in 0.118806 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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