Hi!
Wenn ich alles mit if und elseif oder switch mache, muss ja dann bei jeder neu erstellten Datei der Code geändert werden.
Ja, wenn du es so machst, wie du es gerade tust...
Wie funktioniert das denn bei grösseren Webprojekten? Ich hab schon etwa 100 unterschiedliche Dateien.
Und diese 100 Dateien sollen alle so auf die gleiche Art und Weise eingebunden werden?
Wäre es dann nicht eventuell besser, wenn dein Content aus einer Datenbank kommen würde?
Dann hättest du nicht 100 verschiedene Seiten, sondern vielleicht nur eine.
Nimm mal wieder die Wikipedia als Beispiel.
Du besteht auch aus unzähligen Seiten. Aber es existiert nicht jeweils ein Dokument für jeden einzelnen Artikel.
Da gibt es nur eine Datei und der Content kommt aus einer Datenbank.
Und wenn du nicht für jedes Dokument deinen Switch-Block erweitern willst, dann könntest du es natürlich auch so machen, daß die Datei eingebunden wird, deren Namen du im URL übergibst.
Aber dann mußt du in jedem Fall vorsichtig vorgehen.
Dann würde ich das Script so schreiben, daß man keine Pfade per URL übergeben kann.
Filtere Sonderzeichen aus dem URL, so daß man keinen Slash als Pfadtrenner übergeben kann.
Filtere auch alle möglichen Codierungen für den Slash.
Binde eine Datei dann halt nur ein, wenn diese auch in deinem include-Dateien-Verzeichnis vorhanden ist.
Es darf in keinem Fall möglich sein, daß irgendeine Datei eingebunden wird, die du nicht eingeplant hast.
Ein include( $_GET['dateiname'] );
ohne jegliche Prüfung wäre Wahnsinn.
Schöner Gruß,
rob