云朵背后 發表於 2023-10-11 00:00:00

dedecms 软件下载频道防盗链php代码

<p>dede做软件站有的缺点&nbsp;<br/>就是别人转帖你的下载的时候直接转帖http://www.xxx.com/plus/download.php.........&nbsp;<br/>就是直接打开下载地址列表页这种就可以下载了,耗费资源却又带不了用户。&nbsp;<br/>经过研究,终于搞定了软件频道下载的防盗链,代码发出来大家共享,希望能用的到&nbsp;<br/>改后的功能是&nbsp;<br/>假如软件信息页地址是:http://www.jb51.net/soft/1.htm&nbsp;<br/>下载地址连接是:http://www.jb51.net/plus/download.php?.........&nbsp;<br/>判断来路,&nbsp;<br/>如果不是http://www.jb51.net/soft/1.htm,&nbsp;<br/>直接跳转到http://www.jb51.net/soft/1.htm&nbsp;<br/>如果来路是http://www.jb51.net/soft/1.htm 则展示下载地址&nbsp;<br/>说明下:下边的代码是直接复制我自己站上的,我启用的是全站迅雷下载,打开就自动使用迅雷下载,你也可以做下小修改,不让使用迅雷下载&nbsp;<br/>不使用迅雷的很容易修改:删掉迅雷相关代码,只引用$link就可以了&nbsp;<br/>需要修改的文件为 /plus/download.php&nbsp;<br/>演示:&nbsp;<br/>http://www.jb51.net/do/plus/download.php?open=0&amp;aid=20975&amp;cid=3&nbsp;<br/>必须从http://www.jb51.net/codes/20975.html这个页面进入才正常&nbsp;</p><p class="msgborder" style="margin: 0px auto 3px; padding: 0px 3px; outline: none; line-height: 25.2px; font-size: 14px; clear: both; border-right: 1px solid rgb(0, 153, 204); background: rgb(221, 237, 251); overflow: hidden; border-left: 1px solid rgb(0, 153, 204); word-break: break-all; border-bottom: 1px solid rgb(0, 153, 204); word-wrap: break-word; "><br/>&lt;?php&nbsp;<br/>
        require_once(dirname(__FILE__).&quot;/../include/config_base.php&quot;);&nbsp;<br/>
        require_once(dirname(__FILE__).&quot;/../include/inc_channel_unit.php&quot;);&nbsp;<br/>
        if(!isset($open)) $open = 0;&nbsp;<br/>
        if(!isset($aid)) $aid = &quot;&quot;;&nbsp;<br/>
        $dsql = new DedeSql(false);&nbsp;<br/>
        //读取文档基本信息&nbsp;<br/>
        $arctitle = &quot;&quot;;&nbsp;<br/>
        $arcurl = &quot;&quot;;&nbsp;<br/>
        $gquery = &quot;Select&nbsp;<br/>
        dede_archives.title,dede_archives.senddate,dede_archives.arcrank,&nbsp;<br/>
        dede_archives.ismake,dede_archives.typeid,dede_archives.channel,dede_archives.money,&nbsp;<br/>
        dede_arctype.typedir,dede_arctype.namerule&nbsp;<br/>
        From dede_archives&nbsp;<br/>
        left join dede_arctype on dede_arctype.ID=dede_archives.typeid&nbsp;<br/>
        where dede_archives.ID=&#39;$aid&#39;&nbsp;<br/>
        &quot;;&nbsp;<br/>
        $arcRow = $dsql-&gt;GetOne($gquery);&nbsp;<br/>
        if(is_array($arcRow)){&nbsp;<br/>
        $arctitle = $arcRow[&#39;title&#39;];&nbsp;<br/>
        $arcurl = GetFileUrl($aid,$arcRow[&#39;typeid&#39;],$arcRow[&#39;senddate&#39;],$arctitle,$arcRow[&#39;ismake&#39;],$arcRow[&#39;arcrank&#39;],$arcRow[&#39;namerule&#39;],$arcRow[&#39;typedir&#39;],$arcRow[&#39;money&#39;]);&nbsp;<br/>
        }else{&nbsp;<br/>
        $dsql-&gt;Close();&nbsp;<br/>
        ShowMsg(&quot;无法获取未知文档的信息!&quot;,&quot;-1&quot;);&nbsp;<br/>
        exit();&nbsp;<br/>
        }&nbsp;<br/>
        $cu = new ChannelUnit($arcRow[&#39;channel&#39;],$aid);&nbsp;<br/>
        if(!is_array($cu-&gt;ChannelFields)) {&nbsp;<br/>
        $cu-&gt;Close();&nbsp;<br/>
        $dsql-&gt;Close();&nbsp;<br/>
        ShowMsg(&quot;获取文档链接信息失败!&quot;,&quot;-1&quot;);&nbsp;<br/>
        exit();&nbsp;<br/>
        }&nbsp;<br/>
        $vname = &quot;&quot;;&nbsp;<br/>
        foreach($cu-&gt;ChannelFields as $k=&gt;$v){&nbsp;<br/>
        if($v[&#39;type&#39;]==&quot;softlinks&quot;){ $vname=$k; break; }&nbsp;<br/>
        }&nbsp;<br/>
        if(!is_array($cu-&gt;ChannelFields)) {&nbsp;<br/>
        $cu-&gt;Close();&nbsp;<br/>
        $dsql-&gt;Close();&nbsp;<br/>
        ShowMsg(&quot;获取文档链接信息失败!&quot;,&quot;-1&quot;);&nbsp;<br/>
        exit();&nbsp;<br/>
        }&nbsp;<br/>
        if(!strstr($_SERVER[&#39;HTTP_REFERER&#39;],$arcurl))&nbsp;<br/>
        {&nbsp;<br/>
        echo &quot;&quot;;&nbsp;<br/>
        }&nbsp;<br/>
        $row = $dsql-&gt;GetOne(&quot;Select $vname From &quot;.$cu-&gt;ChannelInfos[&#39;addtable&#39;].&quot; where aid=&#39;$aid&#39;&quot;);&nbsp;<br/>
        $downlinks = $cu-&gt;GetAddLinks($row[$vname]);&nbsp;<br/>
        $dsql-&gt;Close();&nbsp;<br/>
        $cu-&gt;Close();&nbsp;<br/>
        $link = base64_decode($link);&nbsp;<br/>
        $thunderUrl = ThunderEncode($link);&nbsp;<br/>
        echo &quot;&quot;;&nbsp;<br/>
        ?&gt;&nbsp;<br/>&nbsp;<br/></p><center><br/></center><p><br/>补充:&nbsp;<br/>1.本软件频道防盗链功能必须在软件频道设置中设置&nbsp;<br/>链接显示方式: 要求进入下载地址列表页&nbsp;<br/>2.如果例子的情况与您网站的不一样,您也可以手动修改您的/plus/download.php&nbsp;<br/>修改方法如下:&nbsp;<br/>找到:&nbsp;<br/>$row = $dsql-&gt;GetOne(&quot;Select $vname From &quot;.$cu-&gt;ChannelInfos[&#39;addtable&#39;].&quot; where aid=&#39;$aid&#39;&quot;);&nbsp;<br/>在他的上面加上&nbsp;<br/>if(!strstr($_SERVER[&#39;HTTP_REFERER&#39;],$arcurl))&nbsp;<br/>{&nbsp;<br/>echo &quot;&quot;;&nbsp;<br/>}&nbsp;<br/>这样就可以了.&nbsp;</p>
頁: [1]
查看完整版本: dedecms 软件下载频道防盗链php代码