Example #1
0
function DownSoft($classid, $id, $pathid, $p, $pass)
{
    global $empire, $dbtbpre, $public_r, $level_r, $class_r, $emod_r, $ecms_config;
    //验证IP
    eCheckAccessDoIp('downinfo');
    $id = (int) $id;
    $classid = (int) $classid;
    $pathid = (int) $pathid;
    if (empty($id) || empty($p) || empty($classid)) {
        printerror("ErrorUrl", "history.go(-1)", 1);
    }
    $p = RepPostVar($p);
    $p_r = explode(":::", $p);
    $userid = $p_r[0];
    $rnd = $p_r[1];
    //验证码
    $cpass = md5(ReturnDownSysCheckIp() . "wm_chief" . $public_r[downpass] . $userid);
    if ($cpass != $pass) {
        printerror("FailDownpass", "history.go(-1)", 1);
    }
    //表不存在
    if (empty($class_r[$classid][tbname])) {
        printerror("ExiestSoftid", "history.go(-1)", 1);
    }
    $mid = $class_r[$classid][modid];
    $tbname = $class_r[$classid][tbname];
    $ok = 1;
    $r = $empire->fetch1("select * from {$dbtbpre}ecms_" . $tbname . " where id='{$id}' limit 1");
    if (empty($r['id']) || $r['classid'] != $classid) {
        printerror("ExiestSoftid", "history.go(-1)", 1);
    }
    //副表
    $finfor = $empire->fetch1("select " . ReturnSqlFtextF($mid) . " from {$dbtbpre}ecms_" . $tbname . "_data_" . $r[stb] . " where id='{$r['id']}' limit 1");
    $r = array_merge($r, $finfor);
    //区分下载地址
    $path_r = explode("\r\n", $r[downpath]);
    if (!$path_r[$pathid]) {
        printerror("ExiestSoftid", "history.go(-1)", 1);
    }
    $showdown_r = explode("::::::", $path_r[$pathid]);
    $downgroup = $showdown_r[2];
    //下载权限
    if ($downgroup) {
        $userid = (int) $userid;
        $rnd = RepPostVar($rnd);
        //取得会员资料
        $u = $empire->fetch1("select " . eReturnSelectMemberF('*') . " from " . eReturnMemberTable() . " where " . egetmf('userid') . "='{$userid}' and " . egetmf('rnd') . "='{$rnd}' limit 1");
        if (empty($u['userid'])) {
            printerror("MustSingleUser", "history.go(-1)", 1);
        }
        //下载次数限制
        $setuserday = "";
        if ($level_r[$u['groupid']]['daydown']) {
            $setuserday = DoCheckMDownNum($userid, $u['groupid']);
        }
        if ($level_r[$downgroup][level] > $level_r[$u[groupid]][level]) {
            printerror("NotDownLevel", "history.go(-1)", 1);
        }
        //点数是否足够
        $showdown_r[3] = intval($showdown_r[3]);
        if ($showdown_r[3]) {
            //---------是否有历史记录
            $bakr = $empire->fetch1("select id,truetime from {$dbtbpre}enewsdownrecord where id='{$id}' and classid='{$classid}' and userid='{$userid}' and pathid='{$pathid}' and online=0 order by truetime desc limit 1");
            if ($bakr[id] && time() - $bakr[truetime] <= $public_r[redodown] * 3600) {
            } else {
                //包月卡
                if ($u['userdate'] - time() > 0) {
                } else {
                    if ($showdown_r[3] > $u['userfen']) {
                        printerror("NotEnoughFen", "history.go(-1)", 1);
                    }
                    //去除点数
                    $usql = $empire->query("update " . eReturnMemberTable() . " set " . egetmf('userfen') . "=" . egetmf('userfen') . "-" . $showdown_r[3] . " where " . egetmf('userid') . "='{$userid}'");
                }
                //备份下载记录
                $utfusername = $u['username'];
                BakDown($classid, $id, $pathid, $userid, $utfusername, $r[title], $showdown_r[3], 0);
            }
        }
        //更新用户下载次数
        if ($setuserday) {
            $usql = $empire->query($setuserday);
        }
    }
    //总下载数据增一
    $usql = $empire->query("update {$dbtbpre}ecms_" . $class_r[$classid][tbname] . " set totaldown=totaldown+1 where id='{$id}'");
    $downurl = stripSlashes($showdown_r[1]);
    $downurlr = ReturnDownQzPath($downurl, $showdown_r[4]);
    $downurl = $downurlr['repath'];
    //防盗链
    @(include ECMS_PATH . DASHBOARD . "/DownSys/class/enpath.php");
    $downurl = DoEnDownpath($downurl);
    db_close();
    $empire = null;
    DoTypeForDownurl($downurl, $downurlr['downtype']);
}
Example #2
0
function ReturnDSofturl($downurl, $qz, $path = '../../', $isdown = 0)
{
    $urlr = ReturnDownQzPath(stripSlashes($downurl), $qz);
    $url = $urlr['repath'];
    @(include_once ECMS_PATH . DASHBOARD . "/DownSys/class/enpath.php");
    //防盗链
    if ($isdown) {
        $url = DoEnDownpath($url);
    } else {
        $url = DoEnOnlinepath($url);
    }
    return $url;
}