1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58:
| <?php //Hier die Datenbankverbindungsdaten setzten define("Host", "localhost"); define("User", "root"); define("Passwort", ""); define("DB", "downloadcounter_test");
$downloadname = $_GET["download"]; $filename = ""; if (empty($downloadname)) die("Keine Datei ausgewählt!"); //mysql_connect(Server, Nutzer, Passwort); $mysqlcon = mysql_connect(Host, User, Passwort); if (!$mysqlcon) die("Das Verbinden zur Datenbank ist fehlgeschlagen!"); if (!mysql_select_db(DB, $mysqlcon)){ mysql_close($mysqlcon); die("Das Verbinden zur Datenbank-Tabelle ist fehlgeschlagen!"); }
$ret = mysql_query("SELECT `id`, `downloadfile` FROM `downloads` WHERE `downloadname`='" . mysql_real_escape_string($downloadname, $mysqlcon) . "' LIMIT 1", $mysqlcon); if (mysql_num_rows($ret) > 0){ $row = mysql_fetch_assoc($ret); $id = $row["id"]; $filename = $row["downloadfile"];
session_start(); $sid = session_id(); $ret = mysql_query("SELECT `id` FROM `sessions` WHERE `sid`='" . $sid . "' AND `download_id`=" . $id . " LIMIT 1", $mysqlcon); if (mysql_num_rows($ret) === 0){ mysql_query("UPDATE `downloads` SET `downloads`=`downloads`+1 WHERE `id`=" . $id . " LIMIT 1", $mysqlcon); mysql_query("INSERT INTO `sessions` (`sid`, `download_id`) VALUES ('" . $sid . "'," . $id . ")", $mysqlcon); }else{ mysql_query("UPDATE `sessions` SET `ref_cnt`=`ref_cnt`+1 WHERE `sid`='" . $sid . "' AND `download_id`=" . $id . " LIMIT 1", $mysqlcon); } //Während des Downloads kein Kontrolle benötigt (bei vielen Downloads großen führt es sonst zu Problemen wegen zu wenigen Verbindungen) mysql_close($mysqlcon);
if (!is_readable($filename)) die("Die Datei wurde nicht gefunden!"); header('Content-Description: File Transfer'); header('Content-Type: application/force-download'); header("Content-Disposition: attachment; filename=\"".basename($filename)."\";"); header('Content-Length: ' . filesize($filename)); readfile($filename);
$mysqlcon = mysql_connect(Host, User, Passwort); mysql_select_db(DB, $mysqlcon); mysql_query("UPDATE `sessions` SET `ref_cnt`=`ref_cnt`-1 WHERE `sid`='" . $sid . "' AND `download_id`=" . $id . " LIMIT 1", $mysqlcon); $ret = mysql_query("SELECT `id` FROM `sessions` WHERE `ref_cnt`=0 LIMIT 1", $mysqlcon); if (mysql_num_rows($ret) > 0){ $row = mysql_fetch_assoc($ret); mysql_query("DELETE FROM `sessions` WHERE `sid`='" . $sid . "' AND `id`=" . $row["id"] . " LIMIT 1", $mysqlcon); } mysql_close($mysqlcon); }else{ mysql_close($mysqlcon); die("Die Datei existiert nicht!"); }
?> |