123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383 |
- <?php
- $DownSys_CheckIp=0; //下载验证码检测用户IP,0为不开启,1为开启
- //返回检测IP
- function ReturnDownSysCheckIp(){
- global $DownSys_CheckIp;
- $ip=$DownSys_CheckIp?egetip():'127.0.0.1';
- return $ip;
- }
- //下载软件
- 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];
- $nockpass=$p_r[2];
- //验证码
- $cpass=md5(md5($classid."-!ecms!".$id."-!ecms!".$pathid).ReturnDownSysCheckIp()."wm_chief".$public_r[downpass].$userid);
- if('dg'.$cpass<>'dg'.$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);
- $nockpass=RepPostVar($nockpass);
- if(!$nockpass)
- {
- printerror("MustSingleUser","history.go(-1)",1);
- }
- $cknockpass=qReturnLoginPassNoCK($userid,'',$rnd,0);
- if('dg'.$nockpass<>'dg'.$cknockpass)
- {
- printerror("MustSingleUser","history.go(-1)",1);
- }
- //取得会员资料
- $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($downgroup>0)//会员组
- {
- if($level_r[$downgroup][level]>$level_r[$u[groupid]][level])
- {
- printerror("NotDownLevel","history.go(-1)",1);
- }
- }
- else//访问组
- {
- $vgroupid=0-$downgroup;
- $ckvgresult=eMember_ReturnCheckViewGroup($u,$vgroupid);
- if($ckvgresult<>'empire.cms')
- {
- 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."e/DownSys/class/enpath.php");
- $downurl=DoEnDownpath($downurl);
- db_close();
- $empire=null;
- DoTypeForDownurl($downurl,$downurlr['downtype']);
- }
- //下载操作
- function DoTypeForDownurl($downurl,$type=0){
- global $public_r;
- if($type==1)//meta
- {
- echo"<META HTTP-EQUIV=\"refresh\" CONTENT=\"0;url=$downurl\">";
- }
- elseif($type==2)//read
- {
- QDownLoadFile($downurl);
- }
- else//header
- {
- Header("Location:$downurl");
- }
- exit();
- }
- //下载
- function QDownLoadFile($file){
- global $public_r;
- if(strstr($file,"\\"))
- {
- $exp="\\";
- }
- elseif(strstr($file,"/"))
- {
- $exp="/";
- }
- else
- {
- Header("Location:$file");
- exit();
- }
- if(strstr($file,$exp."e".$exp)||strstr($file,"..")||strstr($file,"?")||strstr($file,"#"))
- {
- Header("Location:$file");
- exit();
- }
- $efileurl=eReturnFileUrl();
- if(strstr($file,$efileurl))
- {
- $file=str_replace($efileurl,'/d/file/',$file);
- }
- if(!strstr($file,"://"))
- {
- if(!file_exists($file))
- {
- $file=eReturnEcmsMainPortPath().substr($file,1);
- }
- }
- $filename=GetDownurlFilename($file,$exp);
- if(empty($filename))
- {
- Header("Location:$file");
- exit();
- }
- //下载
- Header("Content-type: application/octet-stream");
- //Header("Accept-Ranges: bytes");
- //Header("Accept-Length: ".$filesize);
- Header("Content-Disposition: attachment; filename=".$filename);
- echo ReadFiletext($file);
- }
- //取得下载文件名
- function GetDownurlFilename($file,$expstr){
- $r=explode($expstr,$file);
- $count=count($r)-1;
- $filename=$r[$count];
- return $filename;
- }
- //----------------------在线电影模型
- //取得验证码
- function GetOnlinePass(){
- global $public_r;
- $onlinep=$public_r[downpass]."qweirtydui4opttt.,mvcfvxzzf3dsfm,.dsa";
- $r[0]=time();
- $r[1]=md5($onlinep.$r[0]);
- return $r;
- }
- //验证验证码
- function CheckOnlinePass($onlinetime,$onlinepass){
- global $movtime,$public_r;
- if($onlinetime+$movtime<time()||$onlinetime>time())
- {
- exit();
- }
- $onlinep=$public_r[downpass]."qweirtydui4opttt.,mvcfvxzzf3dsfm,.dsa";
- $cpass=md5($onlinep.$onlinetime);
- if('dg'.$onlinepass<>'dg'.$cpass)
- {
- exit();
- }
- }
- //--------取得软件地址
- function GetSofturl($classid,$id,$pathid,$p,$pass,$onlinetime,$onlinepass){
- global $empire,$dbtbpre,$public_r,$class_r,$emod_r,$level_r,$ecms_config;
- //验证IP
- eCheckAccessDoIp('onlineinfo');
- $classid=(int)$classid;
- $id=(int)$id;
- $pathid=(int)$pathid;
- $onlinetime=(int)$onlinetime;
- $p=RepPostVar($p);
- if(!$classid||empty($id)||empty($p))
- {exit();}
- $p_r=explode(":::",$p);
- $userid=$p_r[0];
- $rnd=$p_r[1];
- $nockpass=$p_r[2];
- //验证码
- $cpass=md5(md5($classid."-!ecms!".$id."-!ecms!".$pathid).ReturnDownSysCheckIp()."wm_chief".$public_r[downpass].$userid);
- if('dg'.$cpass<>'dg'.$pass)
- {exit();}
- //验证验证码
- CheckOnlinePass($onlinetime,$onlinepass);
- //表不存在
- if(empty($class_r[$classid][tbname]))
- {exit();}
- $mid=$class_r[$classid][modid];
- $tbname=$class_r[$classid][tbname];
- $r=$empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id='$id' limit 1");
- if(empty($r['id'])||$r['classid']!=$classid)
- {exit();}
- //副表
- $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[onlinepath]);
- if(!$path_r[$pathid])
- {
- exit();
- }
- $showdown_r=explode("::::::",$path_r[$pathid]);
- $downgroup=$showdown_r[2];
- //下载权限
- if($downgroup)
- {
- $userid=(int)$userid;
- $rnd=RepPostVar($rnd);
- $nockpass=RepPostVar($nockpass);
- if(!$nockpass)
- {
- exit();
- }
- $cknockpass=qReturnLoginPassNoCK($userid,'',$rnd,0);
- if('dg'.$nockpass<>'dg'.$cknockpass)
- {
- exit();
- }
- //取得会员资料
- $u=$empire->fetch1("select ".eReturnSelectMemberF('*')." from ".eReturnMemberTable()." where ".egetmf('userid')."='$userid' and ".egetmf('rnd')."='$rnd' limit 1");
- if(empty($u['userid']))
- {exit();}
- //下载次数限制
- $setuserday="";
- if($level_r[$u['groupid']]['daydown'])
- {
- $setuserday=DoCheckMDownNum($userid,$u['groupid'],1);
- }
- if($downgroup>0)//会员组
- {
- if($level_r[$downgroup][level]>$level_r[$u[groupid]][level])
- {
- exit();
- }
- }
- else//访问组
- {
- $vgroupid=0-$downgroup;
- $ckvgresult=eMember_ReturnCheckViewGroup($u,$vgroupid);
- if($ckvgresult<>'empire.cms')
- {
- exit();
- }
- }
- //点数是否足够
- $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=1 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'])
- {
- exit();
- }
- //去除点数
- $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],1);
- }
- }
- //更新用户下载次数
- if($setuserday)
- {
- $usql=$empire->query($setuserday);
- }
- }
- //总下载数据增一
- $usql=$empire->query("update {$dbtbpre}ecms_".$class_r[$classid][tbname]." set totaldown=totaldown+1 where id='$id'");
- //选择播放器
- $ftype=GetFiletype($showdown_r[1]);
- if(strstr($ecms_config['sets']['realplayertype'],','.$ftype.','))
- {
- Header("Content-Type: audio/x-pn-realaudio");
- }
- else
- {
- Header("Content-Type: video/x-ms-asf");
- }
- $downurl=stripSlashes($showdown_r[1]);
- $downurlr=ReturnDownQzPath($downurl,$showdown_r[4]);
- $downurl=$downurlr['repath'];
- //防盗链
- @include(ECMS_PATH."e/DownSys/class/enpath.php");
- $downurl=DoEnOnlinepath($downurl);
- db_close();
- $empire=null;
- echo $downurl;
- exit();
- }
- ?>
|