你需要修改attachment.php文件在根目录下 在$attachexists=$ispaid=FALSE;下面添加 if(!empty($checktwo)){ 在最末尾的?>前添加 }else{ echo""; echo"<METAHTTP-EQUIV="Refresh"CONTENT="0;URL=$PHP_SELF?checktwo=1&aid=$aid">"; } 我在本机架设Discuz!5.0.1调试通过了 完整代码如下: <?php / Discuz!2001-2006ComsenzInc. ThisisNOTafreeware,useissubjecttolicenseterms $RCSfile:attachment.php,v$ $Revision:1.13$ $Date:2006/08/1106:51:07$ / require_once'./include/common.inc.php'; $discuz_action=14; if($attachrefcheck&&$_SERVER['HTTP_REFERER']&&preg_replace("/https?://([^/]+)./i","1",$_SERVER['HTTP_REFERER'])!=$_SERVER['HTTP_HOST']){ //header("Location:{$boardurl}images/common/invalidreferer.gif"); showmessage('attachment_referer_invalid',NULL,'HALTED'); } / $query=$db->query("SELECTa.,t.fid,p.authoridFROM{$tablepre}attachmentsa,{$tablepre}threadst,{$tablepre}postsp WHEREa.aid='$aid'ANDt.tid=a.tidANDp.pid=a.pidANDt.displayorder>='0'ANDp.invisible='0'"); $attach=$db->fetch_array($query); / periodscheck('attachbanperiods'); $attachexists=$ispaid=FALSE; if(!empty($checktwo)){ if(!empty($aid)){ $query=$db->query("SELECT*FROM{$tablepre}attachmentsWHEREaid='$aid'"); if($attach=$db->fetch_array($query)){ $query=$db->query("SELECTtid,fid,price,specialFROM{$tablepre}threadsWHEREtid='$attach[tid]'ANDdisplayorder>='0'"); $thread=$db->fetch_array($query); if($thread['fid']){ $query=$db->query("SELECTauthoridFROM{$tablepre}postsWHEREpid='$attach[pid]'ANDinvisible='0'"); if($db->num_rows($query)){ $attach['authorid']=$db->result($query,0); $attachexists=TRUE; } } } } if($allowgetattach&&($attach['readperm']&&$attach['readperm']>$readaccess)&&$adminid<=0&&!($discuz_uid&&$discuz_uid==$attach['authorid'])){ showmessage('attachment_forum_nopermission','NOPERM'); } if(!$thread['special']&&$thread['price']>0&&(!$discuz_uid||($discuz_uid&&$discuz_uid!=$attach['authorid']&&$adminid<=0))){ $query=$db->query("SELECTuidFROM{$tablepre}paymentlogWHEREuid='$discuz_uid'ANDtid='$attach[tid]'"); if($db->result($query,0)){ $ispaid=TRUE; }else{ showmessage('attachment_payto','viewthread.php?tid='.$attach['tid']); } } $filename=$attachdir.'/'.$attach['attachment']; if(is_readable($filename)&&$attachexists){ $query=$db->query("SELECTf.viewperm,f.getattachperm,f.getattachcredits,a.allowgetattachFROM{$tablepre}forumfieldsf LEFTJOIN{$tablepre}accessaONa.uid='$discuz_uid'ANDa.fid=f.fid WHEREf.fid='$thread[fid]'"); $forum=$db->fetch_array($query); if(!$ispaid){ if(!$forum['allowgetattach']){ if(!$forum['getattachperm']&&!$allowgetattach){ showmessage('group_nopermission','NOPERM'); }elseif(($forum['getattachperm']&&!forumperm($forum['getattachperm']))||($forum['viewperm']&&!forumperm($forum['viewperm']))){ showmessage('attachment_forum_nopermission','NOPERM'); } } } if(!($isimage=preg_match("/^image/.+/",$attach['filetype']))){ checklowerlimit($creditspolicy['getattach'],-1); } if(empty($noupdate)){ if($delayviewcount==2||$delayviewcount==3){ $logfile='./forumdata/cache/cache_attachviews.log'; if(substr($timestamp,-1)=='0'){ require_onceDISCUZ_ROOT.'./include/misc.func.php'; updateviews('attachments','aid','downloads',$logfile); } if(@$fp=fopen(DISCUZ_ROOT.$logfile,'a')){ fwrite($fp,"$aidn"); fclose($fp); }elseif($adminid==1){ showmessage('view_log_invalid'); } }else{ $db->query("UPDATE{$tablepre}attachmentsSETdownloads=downloads+'1'WHEREaid='$aid'",'UNBUFFERED'); } } if(!$isimage){ $forum['getattachcredits']=$forum['getattachcredits']?unserialize($forum['getattachcredits']):array(); $getattachcredits=$forum['getattachcredits']?$forum['getattachcredits']:$creditspolicy['getattach']; updatecredits($discuz_uid,$getattachcredits,-1); } $filesize=filesize($filename); ob_end_clean(); header('Cache-control:max-age=31536000'); header('Expires:'.gmdate('D,dMYH:i:s',$timestamp+31536000).'GMT'); header('Content-Encoding:none'); $attach['filename']=(strtolower($charset)=='utf-8'&&strexists($_SERVER['HTTP_USER_AGENT'],'MSIE'))?urlencode($attach['filename']):$attach['filename']; if($isimage&&!empty($noupdate)){ header('Content-Disposition:inline;filename='.$attach['filename']); }else{ header('Content-Disposition:attachment;filename='.$attach['filename']); } header('Content-Type:'.$attach['filetype']); @$fp=fopen($filename,'rb'); @flock($fp,2); $attachment=@fread($fp,$filesize); @fclose($fp); echo$attachment; }else{ showmessage('attachment_nonexistence'); } }else{ echo""; echo"<METAHTTP-EQUIV="Refresh"CONTENT="0;URL=$PHP_SELF?checktwo=1&aid=$aid">"; } ?>
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|