PHP: Wenn include() bei einer URL als Quelle nicht mehr funktioniert

Mit folgendem Befehl konnte man bei älteren PHP-Versionen einfach die Ausgabe einer beliebigen URL in die aktuelle Seite einbauen:

include(‘http://xyserver.de/beispiel’);

PHP-Versionen ab 5.2 verweigern diese Methode. Hier wurde aus Sicherheitsgründen in der PHP.INI die neue Direktive allow_url_include eingeführt, die per default deaktiviert ist und somit “includen” einer URL-Ressource unterbindet.

Zur Abhilfe gibt es zwei Methoden.

1) Wollen oder können Sie an Ihrem PHP-Quelltext gar nicht ändern, dann fügen Sie in ihre PHP.INI folgende Zeile ein:

allow_url_include = Off

2) Ändern Sie jeweils den Quellcode und ersetzen das include durch echo file_get_contents. Also wird aus obigem Beispiel:

echo file_get_contents(‘http://xyserver.de/beispiel’);

Diese Variante hat noch den Vorteil, dass sie etwas schneller ist, da hierbei nicht geprüft wird, ob das vom Server zurückgelieferte Ergebnis eingebetteten PHP-Quelltext enthält. Den würde nämlich include interpretieren und ausführen.

Beachten Sie: Für die zweite Methode muss in der PHP.INI die Direktive

allow_url_fopen = On

gesetzt sein. Dies ist aber bei fast allen Installationen die Grundeinstellung.

Ähnliche Beiträge