Fremde Dokumente aus URL einbinden
Michael St.
- php
0 mabu0 Tobias K.0 Michael St.
0 Michael St.
Hi Forumsmitglieder!
Ne einfache Frage aber meinem PHP-Buch ist diese einfach nicht zu entlocken.
Ich habe eine PHP-Seite sagen wir mit dem namen "layout.php" in dieses will ich verschiedene Dokumente über einen URL Aufruf einbauen.
Schwierig zu erklären, ich probiers mal anhand eines Beispiels:
Also ich will im Browser etwas nach dem Motto "http://www.url.at/layout.php?pfad/dateiname" eingeben.
Im Browser soll dann die Seite "layout.php" aufgerufen werden in welcher dann eine Zeile ala <? include("pfad/dateiname"); ?> steht
Die Dateien liegen alle am selben Server (relative Pfadangaben würden also reichen).
Könnte mir da wer helfen?
Danke im voraus.
Michael aus Wien
Du musst eine Variable vergeben...
Bin auch kein Pro aber ich würds so machen:
http://www.url.at/layout.php?url=pfad/dateiname
Nun kannst du das so einbinden:
<?php include("$url"); ?>
mfg,
mabu
Hallo mabu,
http://www.url.at/layout.php?url=pfad/dateiname
Nun kannst du das so einbinden:
<?php include("$url"); ?>
nein, so nicht. dann kann nämlich jemand daherkommen und einfach
...layout.php?url=http://www.server.de/boesesscript.php
eingeben, und dann beliebige Dinge veranstalten. Wie das richtig geht steht im Archiv z.B. </archiv/2002/12/32844/#m178373>.
Grüße aus Nürnberg
Tobias
</archiv/2002/12/32844/#m178373>
Danke erstmal für den Link. Sowas steht in meinem PHP-Buch natürlich nicht.
Zum laufen bringe ich die empfohlene Lösung allerdings auch nicht
Hier mal das Script:
<HTML><HEAD><TITLE></TITLE></HEAD><body>
<? $pfad['test']="test1/test2.txt"; ?>
...
HTML-Text dazwischen
...
<? if (isset($pfad[$_GET['goto']])
{ include($pfad[$_GET['goto']]); } ?>
else
{ print ("Gibt es nicht"); }
</body></html>
Die URL wäre demnach: www.url.at/index.php?goto=test
Wenn ich das so mache bekomme ich in der Zeile "include($pfad[$_GET['goto']]);" einen "Parse error"
Was mache ich falsch?
mfg
Michael
Hallo Michael,
<? if (isset($pfad[$_GET['goto']])
der Fehler ist gemein :-) am ende der Zeile fehlt noch eine schließende Klammer (der if-Bereich muss geschlossen werden und natürlich auch noch isset().
außerdem darfst du nicht auf isset() abfragen (das ist immer wahr, weil $pfad['test'] immer gesetzt ist. Du musst auf Existenz der Datei prüfen also file_exists statt isset schreiben.
{ include($pfad[$_GET['goto']]); } ?>
den php-Bereich darfst du natürlich erst nach dem schließen des else-Bereiches beenden (also zwei Zeilen tiefen)
Grüße aus Nürnberg
Tobias
Hi Tobias
der Fehler ist gemein :-) am ende der Zeile fehlt noch eine schließende Klammer
Argh, auf die abschliessenden Semiklone schaue ich ja. Diesmal wars ne Klammer.
außerdem darfst du nicht auf isset() abfragen (das ist immer wahr, weil $pfad['test'] immer gesetzt ist. Du musst auf Existenz der Datei prüfen also file_exists statt isset schreiben.
Danke!
den php-Bereich darfst du natürlich erst nach dem schließen des else-Bereiches beenden (also zwei Zeilen tiefen)
Danke, den habe ich dann auch noch selber gefunden.
Funktioniert übrigens. Vielen Dank!
Falls diesen Beitrag mal wer im Archiv findt hier das komplette Script:
<HTML><HEAD><TITLE></TITLE></HEAD><body>
<? $pfad['test']="test1/test2.txt"; ?>
Test<BR>
<? if (file_exists($pfad[$_GET['goto']]))
{ include($pfad[$_GET['goto']]); }
else
{ print ("Gibt es nicht"); }?>
</body></html>
Aufruf über: http://www.url.at/index.php?goto=test
Schöne Grüsse aus Wien
Michael
Also so funktioniert es nicht oder muss ich die Variabel irgendwie speziell definieren?
lg
Michael