<script language="PHP">
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Subsection zum Download-Modul
/// Erwartet als GET file=name (Base64Encoded)
/// Und bietet die Datei dann zum Download an
///
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
require_once("./../_scripts/constants.php");
require_once($lib_database);
require_once($lib_strings);
//Den Download Pfad holen
if (isset($_GET["file"]))
$file=Base64_Decode($_GET["file"]);
else
die();
//Ein wenig umbauen
$file=str_replace("\\","/",$file);
while ($file[0]==".") $file=substr($file,1,strlen($file));
while ($file[0]=="/") $file=substr($file,1,strlen($file));
//Verzeichnis anvisieren
$file=$dir_files."download/".$file."/".$file;
//Checken, ob die Datei besteht und nur gewünschte Dateien zulassen
if (file_exists($file.".exe")) $file.=".exe";
if (file_exists($file.".zip")) $file.=".zip";
if (file_exists($file.".rar")) $file.=".rar";
//Unseren Header schicken
header("Content-Disposition: attachment; filename=".ExtractFileName($file),TRUE);
header("Content-type : application/octet-stream",TRUE);
header("Content-Length : ".filesize($file),TRUE);
//Und die Datei gleich hinterher
$fp=fopen($file,"rb");
if ($fp!=FALSE)
{
//Nach belieben setzen
set_time_limit(0);
while (!feof($fp))
{
$buffer = fread($fp, 8192);
print $buffer;
}
}
//So, nun einfach auf die Datenbank zugreifen und zählen.
//Ich benutze meine eigene Enige, aber es sollte erklären,
//wie sowas mit SQL funktioniert
$file=ExtractFileName($file);
$handle=Bibo_OpenDatabase($dir_logfiles."downloads.bibo",READ_WRITE);
if ($handle!=FALSE)
{
Bibo_ReadDataBase($handle);
//Abfrage nach unserem Programm machen
$query="SELECT 'Datum','File','Anzahl' WHERE 'File'=='".$file."' UNIQUE=TRUE";
$result=Bibo_Query($handle,$query);
//Noch kein Eintrag ?
if (!isset($result["Anzahl"]))
{
//Dann einfügen
$query="INSERT 'Datum'='".time()."','File'='".$file."','Anzahl'='1'";
}
else
{
//Ansonsten Zähler erhöhen
$query="UPDATE 'Datum'='".time()."','Anzahl'='".($result["Anzahl"][0]+1)."' WHERE 'File'=='".$file."'";
}
Bibo_Query($handle,$query);
//Speichern und schließen
Bibo_WriteDatabase($handle);
Bibo_CloseDatabase($handle);
}
Grüße Vini-boy :oops:
</script>