這是本系統的download.php,主要負責下載和記數,其中文件格式均在注釋中說明.
<html>
<?php //傳入num為要下載的文件號,col=要下載的分欄 //ip不超時下載次數加一
//文件格式 //0編號<1作者<2文件位置<3投票計數<4簡介<5文件大小<6文件下載次數 //ip文件格式 地址:項目:時間
$uploadto="../uploadfile/".$col."/";//上傳到的子目錄 $cgiroot="http://eccct.51.net/cgi-bin/"; //主機加當前目錄
$pathtemp=explode("/",$HTTP_ENV_VARS["PATH_INFO"]); $pathtemp[sizeof($pathtemp)-1]=""; $cgiroot="http://".$HTTP_HOST.implode("/",$pathtemp);//主機加當前目錄
$ipfile=$uploadto.$col.".ipd";//下載用的ip文件 $overtime=4;//超時時間小時
$goback="<br><br><br><br><center>系統將在3秒后返回....</center><script>setTimeout('location.href="view.php?col=".$col.""',3000)</script>"; $recfile=$uploadto.$col.".lst";
//取出ip文件 $fp=@fopen($ipfile,"r") or die("對不起該投票不合法".$goback); $ipinfo=fread($fp,filesize($ipfile)); fclose($fp); unlink($ipfile); $times=getdate(); $abstime=$times["yday"].sprintf("%02d",$times["hours"]); //絕對時間
//把超時的ip去掉 $ip_times=explode("|",$ipinfo); $temp=""; $ipinfo="";
for($i=0;$i<sizeof($ip_times);$i++){ $ip=explode(":",$ip_times[$i]); if($ip[1]==""||$ip[0]==""||$ip[2]=="") continue; eval ('$temp='.$abstime.'-'.$ip[2].';');
if($temp<$overtime&&$temp>=0){ $ipinfo.=($ip_times[$i]."|"); } } //echo $ipinfo; if(strstr($ipinfo,$REMOTE_ADDR.":".$num)) { $fp=@fopen($ipfile,"w") or die("出現錯誤".$goback); fwrite($fp,$ipinfo); fclose($fp); $firstdown=0;//第一次下載 } else{ $firstdown=1;//不是第一次下載
$ipinfo=$ipinfo.$REMOTE_ADDR.":".$num.":".$abstime."|";
$fp=@fopen($ipfile,"w") or die("出現錯誤".$goback); fwrite($fp,$ipinfo); fclose($fp); }
//ip判斷結束
for($i=0;$i<100 && !file_exists($recfile);$i++); if($i==99) die("系統出錯00".$goback);
$fp=@fopen($recfile,"r") or die("對不起不合法".$goback); $info=explode(">",fread($fp,filesize($recfile))); fclose($fp); copy($recfile,$recfile.".bak"); unlink($recfile);
for($i=0;$i<sizeof($info);$i++){ $items=explode("<",$info[$i]); if(!trim($items[0])) continue; if(trim($items[0])==$num){//要下載的項目 if($firstdown) $items[6]++; $filepath=$uploadto.$items[2]; $info[$i]=implode("<",$items); break; }
}
//$writetofile=implode(">",$info);
if(!$fp=fopen($recfile,"w")){ copy($votefile.".bak",$votefile); die("出錯02".$goback); }
for($i=0;$i<sizeof($info);$i++){ if(trim($info[$i])!="") fputs($fp,trim($info[$i].">")); } fclose($fp);
echo "<head><meta http-equiv='refresh' content='3;URL=".$filepath."'>"; echo "<link rel='stylesheet' href='../css/eccct.css'></head>"; echo "<body class=tb >"; echo "<div >"; echo "<br><br><br>"; echo "<div class='values'>您的瀏覽器會在三秒鐘后自動下載</div>"; echo "<br><br><br>"; echo "<div class='values'>或者點擊<a href='".$filepath."'>此處</a>下載</div>"; echo "<br><br><br>"; echo "</div>";
//echo $HTTP_ENV_VARS["PATH_INFO"]; //echo "<script>window.location.href='".$filepath."';window.close();</script>";
echo "</body>";
//header("Content-type: application/.rar");
//header("Content-Disposition: attachment; filename=".$filepath); //Header("Location: ".$filepath); //header("Content-Description: PHP3 Generated Data
?> </html>
|