PHP Seite in PHP Seite einbinden?
uepselon
- php
Hallo,
der Titel klingt vielleicht etwas verwirrend, aber ich hab folgendes Problem:
Ich habe eine php datei namens shop.php
in dieser Datei will ich nun eine Weitere Datei die per Parameter übergeben wurde öffnen und per echo ausgeben.
Sprich: shop.php?site=neu.php
echo inhalt von neu.php
Das Problem ist nun das der Inhalt von neu.php ja nur als Text ausgegeben wird, php Code in neu.php wird nicht berücksichtigt,
wie schaff ich es das vor der Ausgabe noch der PHP Code in neu.php
ausgeführt wird?
Gruß
ueps
Hallo ueps,
willkommen zum Tag des Dokumentations-Links. ;)
http://www.php.net/manual/de/function.include.php
http://www.php.net/manual/de/function.require.php
Wenn Du die Ausgabe von neu.php erst komplett einsammeln willst und danach erst (ev. formatiert o.ä.) ausgeben willst, ist Output Buffering Dein Ziel:
http://www.php.net/manual/de/ref.outcontrol.php
http://www.php.net/manual/de/function.ob-get-contents.php
http://www.php.net/manual/de/function.ob-get-length.php
HtH, Thoralf
Hi,
Danke das hat mir weitergeholfen.
War ganau das was ich gesucht hab.
Gruß
ueps
Immer gern. :)
Moin!
willkommen zum Tag des Dokumentations-Links. ;)
http://www.php.net/manual/de/function.include.php
http://www.php.net/manual/de/function.require.php
Zu beachten ist: Wenn die zu includierende Datei per URL angegeben wird, dann ist zwingend dieser Wert sorgsamst zu parsen. Das Include wirkt nämlich nicht nur auf das lokale Dateisystem, sondern öffnet ggf. auch Dateien per HTTP. Auf diese Weise kann man sich beliebigen fremden Code in die eigene Seite einbauen lassen, welcher dann im Prinzip alles tun kann: Die PHP-Skripte und Verzeichnisse listen, die Datenbankanbindung erfahren, die Datenbank löschen, die ganze Website löschen oder "anpassen".
Dieses Verhalten kann man z.B. ganz grundsätzlich abschalten, indem die "URL fopen wrappers" deaktiviert werden.
- Sven Rautenberg
Guten Nachmittag,
Zu beachten ist: Wenn die zu includierende Datei per URL angegeben wird, dann ist zwingend dieser Wert sorgsamst zu parsen. Das Include wirkt nämlich nicht nur auf das lokale Dateisystem, sondern öffnet ggf. auch Dateien per HTTP. Auf diese Weise kann man sich beliebigen fremden Code in die eigene Seite einbauen lassen, welcher dann im Prinzip alles tun kann: Die PHP-Skripte und Verzeichnisse listen, die Datenbankanbindung erfahren, die Datenbank löschen, die ganze Website löschen oder "anpassen".
Völlig korrekt. Einfachste Lösung scheint mir zu sein, die URLs in ein assoziatives Array zu packen und mit ordentlicher Fehlerbehandlung als Parameter nur den Index in das Array zu übergeben. Damit können nur vorgegebene URLs aufgerufen werden.
Gruss aus der prallen Sonne, Thoralf
Danke,
diese Sicherheitslücke hätte ich doch gleich übersehn.
Gruß
ueps
Sprich: shop.php?site=neu.php
echo inhalt von neu.php
Das Problem ist nun das der Inhalt von neu.php ja nur als Text ausgegeben wird, php Code in neu.php wird nicht berücksichtigt,
wie schaff ich es das vor der Ausgabe noch der PHP Code in neu.php
ausgeführt wird?
Hallo,
probier es doch einfach mal mit inlude :-))
Also muss in deiner shop.php an der stelle, an der neu.php ausgegeben werden soll stehen:
if($site != "") include($site);
dann wird die gesamte datei neu.php geparst und ausgeben.
Ciao
Christian
per incluce($site); vielleicht