• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Dynamisches Includ für eine Seite

Status
Für weitere Antworten geschlossen.

Cappex90

Neues Mitglied
Hallo ich hab eine Seite, und ich möchte , dass unterhalb des Header ein Include stattfindet.

Ich bräuchte einen Code, comma der anhand von einer im Link übergebenen Variable, zu versuchen die Seite "content/VARIABLENNAME.htm" aufzurufen. SOllte es die Seite nicht geben soll ein "Echo" kommen und wenn keine Variable eingetragen ist content/home.htm geöffnet werden.

Immer innerhalb dieses einen Bereiches.
Ich hoffe ihr könnt mir helfen

mfg Cappex
 
Ihr wollt immer gleich ein fertigen Code. :roll:
Hast du dir denn diesen Link ,den dir xraysolo geschickt hat, komplett durchgelesen und durchgearbeitet?
 
Du brauchst nur eine GET-Variable, in der die Seite übergeben wird und ein Array, in dem alle Seiten gespeichert werden, damit überprüft werden kann, ob die übergebene Seite existiert.

Lösung:
Code:
0)<?php
1)    $seiten = array('Seite 1', 'Seite 2', 'Seite 3', [...]);
2)    $seite = $_GET['seite'];
0)
3)    if(in_array($seiten, $seite))
4)        include $seite.'.htm';
5)    else
6)        echo '[AUSGABE]';
0)?>
Erklärung:
1) Hier wird ein Array erstellt, in dem alle existierenden/möglichen Seiten gespeichert werden.
2) Hier wird einer Variable der Wert der GET-Variable zugeteilt.
3) Hier wird überprüft, ob die übergebene Seite in dem Array gespeichert ist.
4) Wenn 3) zutrifft, wird die entsprechende Seite includiert mit der Endung .htm (das kannst du auch ändern).
5) Wenn 3) nicht zutrifft...
6) ...wird eine Ausgabe gemacht. Hier musst du [AUSGABE] durch das ersetzen, was du ausgeben möchtest.

Ein Link müsste dann in etwa so aussehen:
Code:
[url="[DIE SEITE, DIE DEN GEPOSTETEN CODE ENTHÄLT].php?seite=[DIE SEITE, DIE GEÖFFNET WERDEN SOLL]"][BESCHREIBUNG][/url]
 
1. Die Idee mit dem Array ist nicht sonderlich flexibel. Es ist doch wesentlich einfacher auf das Vorhandensein der entsprechenden Datei zu prüfen.
Code:
if(file_exists($filename)) { ... }
2. Ich würde es vermeiden die Seite mit der URL zu übergeben da das Sicherheitrisiken mit sich bringen kann. Es gibt aber genügend Alternativen ;)
 
Über das array könnte man eine Lösung in form einer white oder blacklist realisieren. jedoch stimme ich dir zu das das prüfen der exsistenz sinnvoller ist .
 
Das könnte aber auch ein Sicherheitsrisiko bedeuten, da auf dem Webspace ja auch Dateien liegen können, die man eigentlich nicht zu Gesicht bekommen sollte, da brauch an nur ein wenig rumprobieren und man könnte durch Zufall eine solche Datei finden.

Bei der Array-Version sehe ich keine Sicherheitsrisiken. Welchen wären das?
 
Das könnte aber auch ein Sicherheitsrisiko bedeuten, da auf dem Webspace ja auch Dateien liegen können, die man eigentlich nicht zu Gesicht bekommen sollte, da brauch an nur ein wenig rumprobieren und man könnte durch Zufall eine solche Datei finden.
Deshalb sollte die Seite auch nicht wia URL übergeben werden.

Bei der Array-Version sehe ich keine Sicherheitsrisiken. Welchen wären das?
Das Sicherheitsrisiko besteht allgemein darin, das eine Datei von Server inkludiert wird. Sicher wird es bei der Version mit dem Array ganz gut gepuffern nur gibt es immerwieder Leute die das nötige Know-How besitzen auch solche Lücken ausunutzen. Zudem gibt es genug Sriptkiddies die sich irgendwelche Anleitungen im Netz durchlesen, 1:1 nachmachen und somit großen Schaden anrichten können. Welche Lücken sich nun im einzelnen durch die hier betrachtete Vorgehensweise öffen kann ich auch nicht sagen aber ich musste schon öfter lesen, das von dieser Art der Vorgehensweise dringen abzuraten ist und das wird schon seine Gründe haben ;)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben