Folgendes Problem:
Ich habe ein Script geschrieben, welches es ermöglichen soll, Dateien runterzuladen. Der Name der Datei wird aus einer Datenbank gelesen und mittels header("Location: $file"); übergeben.
Auch alle anderen header Anweisungen in anderen Dateien funktionieren nicht. Wer möchte kann ja mal reinschauen. Psykonaut Records (Seite befindet sich noch in der Entwicklung)
Im Manual und in diversen Büchern steht, dass die Anweisung header() generell immer am Anfang einer Datei (vor dem HTML Code) stehen muss. Die header('Location: ') Anweisung wäre aber eine Ausname. Es ist eben nur eine Weiterleitung.
Hier das Codebeispiel:
Der Code befindet sich in der selben Datei. Es wird also keine Template Klasse verwendet. Wie kann ich es trotz HTML verwirklichen, dass der header Befehl arbeitet und somit der Download funktioniert?
Ich habe ein Script geschrieben, welches es ermöglichen soll, Dateien runterzuladen. Der Name der Datei wird aus einer Datenbank gelesen und mittels header("Location: $file"); übergeben.
Auch alle anderen header Anweisungen in anderen Dateien funktionieren nicht. Wer möchte kann ja mal reinschauen. Psykonaut Records (Seite befindet sich noch in der Entwicklung)
Im Manual und in diversen Büchern steht, dass die Anweisung header() generell immer am Anfang einer Datei (vor dem HTML Code) stehen muss. Die header('Location: ') Anweisung wäre aber eine Ausname. Es ist eben nur eine Weiterleitung.
Hier das Codebeispiel:
PHP-Code:
...
<td>
Filesize: {$row['file']} bytes<br />
Downloads: {$row['clicks']}<br />
Average Rating: {$row['rating']} [votes: {$row['rate_count']}]<br /><br />
[ <a href=\"./tracks_download.php?id={$row['id']}\">Download this track</a> ]<br />
<br />
</td>
.
.
.
<?php
if (isset($_GET['id'])) {
$result = mysql_query("SELECT file FROM tracks WHERE id = '".$_GET['id']."'");
$file = mysql_result($result, 0, 'file');
mysql_query("UPDATE tracks SET clicks = clicks + 1 WHERE id = '".$_GET['id']."'");
header("location: $file");
exit();
}
Kommentar