M
Also mein Code sieht so aus:
<?php
if(isset($dopp))
{
$download = "file1";
# $download sei der Bezeichner für die zu ladende Datei
# Dieses Verzeichnis liegt außerhalb der Document_Root und
# ist nicht per URL zuzugreifen.
$basedir = "html";
# Übersetzung von Download-Bezeichner in Dateinamen.
$filelist = array(
"file1" => "engine.bmp",
"file2" => "engine.bmp",
"file3" => "engine.bmp"
);
# Einbruchsversuch abfangen.
if ($filelist[$download] == "")
die("Datei $download nicht vorhanden.");
# Vertrauenswürdigen Dateinamen basteln.
$filename = sprintf("%s/%s", $basedir, $filelist[$download]);
# Passenden Datentyp erzeugen.
//header("Content-Type: application/zip");
# Passenden Dateinamen im Download-Requester vorgeben,
# z.B. den Original-Dateinamen
$save_as_name = basename($filelist[$download]);
header("Content-Disposition: attachment; filename=\"Mann.bob\"");
# Datei ausgeben.
readfile($filename);
}
else
{
?>
Hallo! :)
<a href=<?php echo $PHP_MYSELF;?>?dopp=100>Bezeichnung</a>
<?php
}
?>
Wenn ich alles was darin steht weglasse und via PHP nur eine cho mache, dann wird echon auch ausgeführt.
So ist es mit allen PHP Befehlen!
Doch wenn ich auf das Link: Bezeichnung klicke, dann bietet er mir:
testi.php
zum download an.
Wenn ich auf herunterladen gehe, kann ich das runterladen.
Und wenn ich auf ausführen gehe, bietet er mir die echte Datei zum Download an, die auch runtergeladne werden soll.
MfG MAV