Hi, warum sollte man sich (und vor allem der Datenbank) mehr Arbeit machen als nötig? Warum zwei Queries, wenn doch eins vollkommen ausreicht:PHP:mysql_query("UPDATE `tabellenname` SET `anzahl_downloads` = `anzahl_downloads` + 1 WHERE `id` = '" . mysql_real_escape_string($lied_id) . "'");
Die mod_rewirte Geschichte funktioniert im Prinzip folgendermasse:
1. Du erstellst eine Datei namens ".htacces", und schreibst ungefähr folgenden Inhalt hinein:Diese Einstellungen leiten alle Zugriffe auf die URL download/lied#.mp3 (wobei # für eine beliebige ganze Zahl steht) weiter auf das Script downloads.phpCode:RewriteEngine On RewriteRule ^download/lied([0-9]+)\.mp3$ index.php?lied=$1 [L,QSA]
2. In der Datei index.php kann nun mittel $_GET['lied'] auf die Nummer des gewünschten Lieds zugreifen. Diese also für den Downloadcounter (entspricht $lied_id) verwenden und anschliessend entweder auf das Lied weiterleiten, oder die Datei öffnen und den Inhalt schicken. Letzteres funktioniert in etwa so:PHP:$file = 'lied' . $lied_id . '.mp3'; readfile($file);
3. Aus Gründen der Sicherheit UNBEDINGT! den Inhalt der Variablen $_GET['lied'] überprüfen, da deine Website sonst sehr leicht gehackt werden kann.
Ich hoffe das hilft erstmal weiter.
Ich hätte aber gerne dass der der die Datei herunterläd garnichts davon mitbekommt.
gruß
crix
edit:
Irgendwie sieht das mir soo kompliziert aus. Um Missverständnisse aus der Welt zu schaffen erläutere ich lieber nochmal was ich haben möchte.
Ich möchte nur 2 Seiten (Dateien). Die Datei index.php in der man die Datei runterladen kann (am besten mit dem Link "bandname - lied.mp3", damit das beliebte "Rechtsklick -> Speichern unter.." auch möglich ist, wobei es besser wäre dass die Datei immer Lokal auf dem PC zur Wiedergabe gespeichert werden muss) und die Datei downloads.php (wie ein paar Zeilen weiter oben) in der ich die Downloadanzahl sehen kann.
Und es ist nur eine Datei deren Downloads gezählt werden sollen, es kommt auch keine dazu.
Dies ist jetzt nicht negativ gemeint. Und vielleicht ist das doch so kompliziert.. und ihr habt es richtig verstanden. Ich wollte es nur noch einmal erläutern, dass keine Missverständnisse auftreten.
Zuletzt bearbeitet: