加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前

发布时间:2020-12-13 05:20:25 所属栏目:PHP教程 来源:网络整理
导读:你需要修改attachment.php文件在根目录下 在$attachexists=$ispaid=FALSE;下面添加 if(!empty($checktwo)){ 在最末尾的?前添加 }else{ echo""; echo"METAHTTP-EQUIV="Refresh"CONTENT="0;URL=$PHP_SELF?checktwo=1aid=$aid""; } 我在本机架设Discuz!5.0.

你需要修改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">";
}
?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读