Ich include hier eine .html Datei. include() interessiert die Dateiendung aber nicht, ein <?php ?> Block wird immer ausgeführt (auch wenns ne .txt Datei ist). In einer .html Datei hat sowas aber nix zu suchen, und es wäre wahrscheinlich auch nicht erwünscht, dass solche Blöcke ausgeführt werden. Also wäre echo file_get_contents('navigation.html'); wesentlich eleganter, da es verhindert, dass ein Angreifer sich den eventuell variablen Dateinamen zu Nutzen macht um eine PHP Datei auszuführen, die er vorher auf den Server eingeschleust hat. Frag mich nicht wie, aber es geht ums Prinzip
require() würde ich da nicht benutzen. Lieber ein if(include('navigation')) { ... }, um evtl. eine geeignete Fehlermeldung anzuzeigen, die keine Daten preisgibt, die der Benutzer nicht sehen soll. require() würde ich nur für PHP Dateien benutzen, die Funktionen und Klassen enthalten, die für die spätere Ausführung gebraucht werden und im Allgemeinen nicht fehlen sollten.







Zitieren