,织梦dedecms做软件站有的缺点 。,就是别人转帖你的下载的时候直接转帖http://www.xxx.com/plus/download.php……… ,就是直接打开下载地址列表页这种就可以下载了,耗费资源却又带不了用户。 ,经过研究,终于搞定了软件频道下载的防盗链,代码发出来大家共享,希望能用的到 ,改后的功能是 ,假如软件信息页地址是:/soft/1.htm ,下载地址连接是:/plus/download.php?……… ,判断来路, ,如果不是/soft/1.htm, ,直接跳转到/soft/1.htm ,如果来路是/soft/1.htm 则展示下载地址 ,说明下:下边的代码是直接复制我自己站上的,我启用的是全站迅雷下载,打开就自动使用迅雷下载,你也可以做下小修改,不让使用迅雷下载 ,不使用迅雷的很容易修改:删掉迅雷相关代码,只引用$link就可以了 ,需要修改的文件为 /plus/download.php ,演示: ,/do/plus/download.php?open=0&aid=20975&cid=3 ,必须从/codes/20975.html这个页面进入才正常 , , ,<script src="http://pstatic.xunlei.com/js/webThunderDetect.js"></script> ,<?php require("encode.inc"); ?> ,<?php ,require_once(dirname(__FILE__)."/../include/config_base.php"); ,require_once(dirname(__FILE__)."/../include/inc_channel_unit.php"); ,if(!isset($open)) $open = 0; ,if(!isset($aid)) $aid = ""; ,$dsql = new DedeSql(false); ,//读取文档基本信息 ,$arctitle = ""; ,$arcurl = ""; ,$gquery = "Select ,dede_archives.title,dede_archives.senddate,dede_archives.arcrank, ,dede_archives.ismake,dede_archives.typeid,dede_archives.channel,dede_archives.money, ,dede_arctype.typedir,dede_arctype.namerule ,From dede_archives ,left join dede_arctype on dede_arctype.ID=dede_archives.typeid ,where dede_archives.ID='$aid' ,"; ,$arcRow = $dsql->GetOne($gquery); ,if(is_array($arcRow)){ ,$arctitle = $arcRow['title']; ,$arcurl = GetFileUrl($aid,$arcRow['typeid'],$arcRow['senddate'],$arctitle,$arcRow['ismake'],$arcRow['arcrank'],$arcRow['namerule'],$arcRow['typedir'],$arcRow['money']);,}else{ ,$dsql->Close(); ,ShowMsg("无法获取未知文档的信息!","-1"); ,exit(); ,} ,$cu = new ChannelUnit($arcRow['channel'],$aid); ,if(!is_array($cu->ChannelFields)) { ,$cu->Close(); ,$dsql->Close(); ,ShowMsg("获取文档链接信息失败!","-1"); ,exit(); ,} ,$vname = ""; ,foreach($cu->ChannelFields as $k=>$v){ ,if($v['type']=="softlinks"){ $vname=$k; break; } ,} ,if(!is_array($cu->ChannelFields)) { ,$cu->Close(); ,$dsql->Close(); ,ShowMsg("获取文档链接信息失败!","-1"); ,exit(); ,} ,if(!strstr($_SERVER['HTTP_REFERER'],$arcurl)) ,{ ,echo "<script language='javascript'>location=\"$arcurl\";</script>"; ,} ,$row = $dsql->GetOne("Select $vname From ".$cu->ChannelInfos['addtable']." where aid='$aid'"); ,$downlinks = $cu->GetAddLinks($row[$vname]); ,$dsql->Close(); ,$cu->Close(); ,$link = base64_decode($link); ,$thunderUrl = ThunderEncode($link); ,echo "<script>OnDownloadClick('".$thunderUrl."','',location.href,'07231',2,'')</script>"; ,?> ,<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ,<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn"> ,<head> ,<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> ,<title><?php echo $arctitle?>下载地址列表</title> ,<link href="../templets/style/dede.css" rel="stylesheet" type="text/css" /> ,<link href="../templets/style/spage.css" rel="stylesheet" type="text/css" /> ,</head> ,</head> ,<body> ,<center> ,<div class="stop"> ,<span class="toptitle">下载</span> ,<span class="toplink"><a href="/" _fcksavedurl="/">返回主页</a></span></div> ,<div class="smain">