Sven Rautenberg: include() böse[tm] u.a.?

Beitrag lesen

Moin!

Ich habe eine Datei $HOME/www/Includes/fuss.shtml, die ihrerseits noch Code (SSI und PHP) enthält, der auf dem Server ausgeführt werden muss.

Regel Nummer 1: Man kann SSI und PHP nicht mischen in einer Datei und erwarten, dass beide Codes wirken. Sowas geht mit Apache 1.3 schon mal generell gar nicht, und der Apache 2 müßte für sowas extra konfiguriert werden - womit ich mich noch nicht näher beschäftigt habe, also auch nicht sagen kann, ob und wie es geht.

Aber es ist ja kein Problem, das, was SSI tun soll, auch mit PHP zu tun. Man kann also den SSI-Teil dieser fuss.shtml auch komplett in PHP erledigen.

Man kann der Einfachheit halber die .shtml-Datei dann zu einer .php-Datei machen.

Und wenn man die dann mit SSI einbindet, wird - oh wunder - das PHP ausgeführt.

<!--#include virtual="/Includes/fuss.php" -->

Es funktioniert sogar (wenn man das braucht) mit GET-Parametern, die im PHP dann zur Verfügung stehen:

<!--#include virtual="/Includes/fuss.php?wert=angabe" -->

Mit anderen Worten: Es gibt eigentlich keinen Grund, SSI und PHP in einer Datei zu mischen.

Und es gibt auch keinen Grund, ungeparstes SSI oder PHP an den Browser zu schicken. Wobei das beim SSI noch nicht so wahnsinnig grausam ist, aber PHP-Code böte unter Umständen dann doch die Offenbarung von Angriffspunkten - und das sollte man natürlich vermeiden.

- Sven Rautenberg