Template in include() laden
Bender
- php
0 eddi-3 afra0 eddi0 afra0 Vinzenz Mai
Hallo,
ich habe eine index.php Datei die in drei includes aufgeteilt ist:
include(header.php)
include(content.php)
include(footer.php)
Wie stelle ich nun ein, dass, wenn ich auf einen Link klicke, nur im mittleren Teil ein neues Template geladen wird, sodass Header & Footer nicht neugeladen werden müssen, sondern nur der eigentliche Inhalt?
Früher hab ich das mit Frames gemacht, da musste ich dann im URL target="framename" eingeben, nur möchte ich mich von diesen nervigen Dingern verabschieden...
Sorry, ich bin totaler PHP Anfänger und hab echt keine Ahnung davon...
Ich hoffe jemand kann mir das "für Dummies" erklären... ;D
Vielen Dank im Voraus!
Hallo,
sagen wird, Du willst eine "übermich.php", "übersie.php" und eine "überes.php" dann gehe z. B. so vor:
$a=array("übermich.php","übersie.php","überes.php","content.php");
include(header.php);
if(isset($a[$_GET['link']]))
include($a[$_GET['link']]);
else include($a[3]);
include(footer.php);
Deien Verweise würden dann also heißen:
http://deine.domain/dateiname.php?link=0 (übermich.php)
http://deine.domain/dateiname.php?link=1 (übersie.php)
http://deine.domain/dateiname.php?link=2 (überes.php)
Gruß aus Berlin!
eddi
Hallo Edii!
sagen wird, Du willst eine "übermich.php", "übersie.php" und eine "überes.php" dann gehe z. B. so vor:
$a=array("übermich.php","übersie.php","überes.php","content.php");
include(header.php);
if(isset($a[$_GET['link']]))
include($a[$_GET['link']]);
else include($a[3]);
include(footer.php);
>
> Deien Verweise würden dann also heißen:
>
> http://deine.domain/dateiname.php?link=0 (übermich.php)
> http://deine.domain/dateiname.php?link=1 (übersie.php)
> http://deine.domain/dateiname.php?link=2 (überes.php)
Sagen wir, es gibt dann jemand im guten Fall http://deine.domain/dateiname.php?link=http://www.boeseseite.de/boeserinhalt.html an, dann ist der OP aufgeschmissen, wenn er dann vielleicht auch noch so etwas wie "delete from $db ..." eingibt, dann hat der OP, oder sein Kunde eventuell ein sehr viel größeres Problem.
Verwenden von Variablen in includes ohne diese vorher zu verifizieren, oder aus einer "erlaubten" Liste gegen zu checken ist Entwicklerwahnsinn und sollte keinem empfohlen werden!
Schönen Gruß
Afra
--
[Die PARTEI in RLP](http://www.die-partei-rlp.de)
Hallo,
Sagen wir, es gibt dann jemand im guten Fall http://deine.domain/dateiname.php?link=http://www.boeseseite.de/boeserinhalt.html an, dann ist der OP aufgeschmissen, wenn er dann vielleicht auch noch so etwas wie "delete from $db ..." eingibt, dann hat der OP, oder sein Kunde eventuell ein sehr viel größeres Problem.
Deiner völlig fehlgehenteten Annahme, das mein Code diese Probleme aufweisen würde und eine Sicherheitslücke auftut, entnehme ich, daß Du die erstmal einen Kaffee machen gehen wirst, um wach zu werden.
Verwenden von Variablen in includes ohne diese vorher zu verifizieren, oder aus einer "erlaubten" Liste gegen zu checken ist Entwicklerwahnsinn und sollte keinem empfohlen werden!
Genau das geschieht auch in meinem Script. Es wird die Variable $_GET['link']
gegen eine Liste geprüft und _zusätzlich_ sogar nur indirekt (als Schlüssen eines Datenfeldes) genutzt.
Gruß aus Berlin!
eddi
Hallo Eddi!
Sorry. Ich hab irgendwie Dein Array am Anfang völlig überlesen und mein Pawlowscher Reflex ging los ;o)
Schönen Gruß
Hallo Eddi,
Genau das geschieht auch in meinem Script. Es wird die Variable
$_GET['link']
gegen eine Liste geprüft und _zusätzlich_ sogar nur indirekt (als Schlüssen eines Datenfeldes) genutzt.
fertiger Code kann nützlich sein. Ohne Kommentare ist er das in den seltensten Fällen. Nein, Dein Code kommentiert sich nicht selbst. Ja, das was Holger angemerkt hat, sollte im Kommentar stehen.
Freundliche Grüße
Vinzenz