Hallo,
ich habe dieses Script um Daten von meinem Webserver laden zu können.
(Quelle: http://www.php-faq.de/q-datei-download.html)
<?php # $download sei der Bezeichner für die zu ladende Datei<br />$download = $\_GET['download'];
# Dieses Verzeichnis liegt außerhalb der Document\_Root und
# ist nicht per URL zuzugreifen.
$basedir = "/home/xxx/html/daten";
# Übersetzung von Download-Bezeichner in Dateinamen.
$filelist = array(
"test" =\> "test.zip",
"bild" =\> "/ein\_bild.png"
);
# Einbruchsversuch abfangen.
if ($filelist[$download] == "")
die("Die Datei \*$download\* is nicht vorhanden.");
# Vertrauenswürdigen Dateinamen basteln.
$filename = sprintf("%s/%s", $basedir, $filelist[$download]);
# Passenden Datentyp erzeugen.
header("Content-Type: application/octet-stream");
# Passenden Dateinamen im Download-Requester vorgeben,
# z.B. den Original-Dateinamen
$save\_as\_name = basename($filelist[$download]);
header("Content-Disposition: attachment; filename=\"".$save\_as\_name."\"");
# Datei ausgeben.
readfile($filename);
?\>
Aufgerufen wird das dann mit:
example.org/download/download.php?download=test
Dieses öffnet nur kein Fenster im Browser wenn die Datei vorhanden ist. Sondern nur wenn sie es nicht ist. Dann kommt die Meldung:
Die Datei *xyz* is nicht vorhanden.
Soweit so gut.
Allerdings möchte ich das auch dann Text ausgegeben wird wenn die Datei vorhanden ist.
In etwa so:
Die Datei *bild* ist vorhanden.
Außerdem möchte ich das ganze mit meiner Statistik verbinden. Um den Aufruf der Seite/des Downloads sehen so können.
Dazu muss ich dieses Script in die zu zählende Seite einbinden:
Aber ich schaffe es noch nicht mal den „normalen Text“ (Die Datei *name* ist vorhanden) auszugeben!
Habe es schon ewig mit „if“ , „else“ und „echo“ versucht. Komme aber nicht weiter.
Und zu dem „Einbruchsversuch abfangen“ würde ich kurz den unterschied dieser 2 Versionen erfahren:
Version 1 (original)
# Einbruchsversuch abfangen.
if ($filelist[$download] == "")
die("Die Datei \*$download\* is nicht vorhanden.");
Version 2:
// Einbruchsversuch abfangen.
if (!isset($filelist[$download]))
die("Datei $download nicht vorhanden.");
Bitte hier um Hilfe.
Ich weiss nicht mehr weiter und bin vor lauter Forumslesen und PHP.net/manual lesen voll wirr.
Schon mal vielen vielen Dank für Hilfe!