Tutorials Infos - Anleitungen - Hilfe - Dreamcodes
 

Dateien Counter

Dieses Beispiel zeigt wie man sich ein einfaches Download-Script basteln kann. Der jeweilige Download-Link soll hierbei nicht direkt auf die Datei gehen, sondern auf eine PHP-Datei.
Der Kern ist hier nicht die Anbindung an die MySQL-Datenbank, sondern die Möglichkeit mit header()-Funktionen ein Download-Script komfortabel zu machen.

QUELLCODE

Zuerst benötigen wir eine MySQL-Tabelle mit den nötigen Informationen über die Downloads:

CREATE TABLE downloads (
  id int(4) NOT NULL auto_increment,
  downloads int(5) NOT NULL default '0',
  url text NOT NULL,
  PRIMARY KEY  (id)
)
Danach lassen sich die Downloads ebenfalls über PHPMyAdmin eingeben (Registerkarte "Einfügen"), auf das Programmieren eines Admin-Bereichs verzichte ich an dieser Stelle.
Bei "id" und "downloads" muss nichts eingegeben werden, lediglich die Adresse zur Datei (z.B. http://www.server.de/file.zip) bei "url".

Jetzt fehlt uns noch die PHP-Datei auf die gelinkt werden soll. Um es möglichst professionell wirken zu lassen, verzichtet die Datei auf eine visuelle Ausgabe. Was das bedeutet, sehr ihr wenn ihr z.B. einen von meinem Scripten hier runterladet.
Die Datei sollte ungefähr so aussehen:
<?php
mysql_connect("SERVER", "USERNAME", "PASSWORT");
mysql_select_db("DB");

$my_download = 
	mysql_fetch_array(
	mysql_query("select * from X where 
	id='$_GET[id]'"));
$downloads = 
	$my_download[downloads]+1;
mysql_query("update X SET downloads='$downloads' 
	where id='$_GET[id]'");
$save_as_name = basename($my_download[url]);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; 
	filename=\"$save_as_name\"");
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Length: 
	".filesize($my_download[url]));
readfile($my_download[url]);
?>
Als erstes müssen natürlich die ersten zwei Zeilen editiert und die richten MySQL Daten eingetragen werden. Ebenfalls muss man die beiden SQL-Anfragen ändern, anstatt "X" muss hier der Tabellenname eingetragen werden.
Wenn man nun einen Download starten möchte (z.B. den, der die ID 2 hat) muss man die Datei so aufrufen: "download.php?id=2".
Wenn man einen Link darauf setzt, sollte man das target-Attribut nicht so wählen, dass es ein neues Fenster öffnet, sondern dass der Link im gleichen Fenster geöffnet wird (target=... im Link einfach weglassen).

Die Anzahl der Downloads lässt sich folgendermaßen auslesen:
<?php
$num_downloads = mysql_result(
	mysql_query("select downloads from X
	where id=\"2\""),0);
print("$num_downloads);
?>
Auch hier muss wieder das "X" durch den Tabellennamen ersetzt werden. Außerdem wird hier die id=2 ausgelesen, lässt sich natürlich (fast) beliebig verändern (die ID muss vorhanden sein).

 
ID: 470
eingestellt am: 06.07.2004
Autor: Alexo
Status zum lesen: Gast
gelesen: 5683
Webseite: www.dreamcodes.com
[Drucken]