Discussion:
Probleme beim includen von Dateien
(zu alt für eine Antwort)
Moritz Behner
2005-03-22 19:53:58 UTC
Permalink
Hallo,

Beispiel meines Scripts

<?PHP
//
switch ($bereich) {
case "test":
include('test.pdf');
break;
//
default:
echo "falscher link";
}
//
?>

aufrufen der datei http://host.de/datei.php?bereich=test

manche Dateien werden ohne Probleme dargestellt. Aber bei manchen wird der
Fehler

Parse error: parse error in /test.pdf on line 275

ausgegeben.

PHP interpretiert die Datei und gibt dann diesen Fehler aus.



Gibt es keine Möglichkeit, dass der Name der Datei verborgen bleibt, indem
der Link der Datei "datei.php?bereich=test" heißt. Die Datei "test.pdf" aber
nicht interpretiert wird

=> Das egal bei welcher Datei kein Fehler ausgegeben wird.



Oder gibt es eine andere Möglichkeit den wahren Dateinamen zu verbergen?



Bitte um Hilfe, mit freundlichem Gruß

Moritz
Tobias Kutzler
2005-03-22 20:22:37 UTC
Permalink
Post by Moritz Behner
Hallo,
Beispiel meines Scripts
<?PHP
//
switch ($bereich) {
include('test.pdf');
break;
//
echo "falscher link";
}
//
?>
aufrufen der datei http://host.de/datei.php?bereich=test
manche Dateien werden ohne Probleme dargestellt. Aber bei manchen wird der
Fehler
Parse error: parse error in /test.pdf on line 275
ausgegeben.
Schonmal überlegt, warum ne PDF-Datei nicht in PHP inkludiert werden
kann? Da ist nämlich kein PHP Code drin, der ausgeführt werden könnte.
Daher auch die Fehlermeldung. Was hast Du denn mit dem include vor?
Post by Moritz Behner
PHP interpretiert die Datei und gibt dann diesen Fehler aus.
Gibt es keine Möglichkeit, dass der Name der Datei verborgen bleibt, indem
der Link der Datei "datei.php?bereich=test" heißt. Die Datei "test.pdf" aber
nicht interpretiert wird
=> Das egal bei welcher Datei kein Fehler ausgegeben wird.
Wie ich bereits fragte, was soll mit der inkludierten Datei passieren?
Herunterladen?
Post by Moritz Behner
Oder gibt es eine andere Möglichkeit den wahren Dateinamen zu verbergen?
So langsam verstehe ich... Ich glaube Du suchst das hier:
header("Location: http://www.example.org/test.pdf");

Damit wird auf die PDF Datei weitergeleitet. Vor dem header() Befehl
darf aber nicht eine einzige Zeile ausgegeben werden (z.B. mittels echo)

Und noch eine Anmerkung sei mir erlaubt:
Scheinbar ist bei Dir die Konfigurationseinstellung der register_globals
auf on. Darauf kann man sich aber nicht immer verlassen und außerdem
birgt diese Einstellung ein Sicherheitsrisiko, da so böswilliger Code in
Deine Skripte geschmuggelt werden könnte. Verwende bitte für den Abruf
des Inhalts von bereich nicht einfach $bereich sondern $_GET['bereich'].

Ciao,
Tobias

Loading...