Ok mein Problem ist folgendes. Ich habe eine Homepage die ist HTML basierend: www.anet-plugin.com
Wie man sieht, ändert sich im Prinzip nur der Text der mittig dargestellt wird. Das Banner, die Menüleiste und das ganze rundherum bleibt eigentlich fix. Dadurch das ich das mit HTML und ohne Frames gemacht habe, muss man nun wenn man z.B. etwas am Banner ändern möchte alle html files ändern.
Ich dachte nun an folgende Lösung. Ein php Skript z.B. index.php bekommt per parameter übergeben welchen Inhalt es laden soll. Zuerst gibt des den HTML code des gesamten Rahmens, Banners etc. aus und dann lädt es die html datei die zu dem parameter gehört und gibt diese aus. D.h. im Endeffekt ist jeder Inhalt eine eigene html Datei die jedoch die Sachen die sich nie ändern wie banner etc. nicht enthält. Diese sind nämlich in index.php definiert.
Quasi php basierende Frames.
Ist diese Lösung intelligent? Gibts da was besseres?
Ich mache das meist sehr ähnlich…
zu dem ganzen hinzu mach ich da sowas mit rewriterules:
RewriteEngine On
RewriteRule ^seite1$ index.php?page=seite1 [QSA] [L] #leitet die anfrage auf domain.xy/seite1 zu domain.xy/index.php?page=seite1
Damit hast du dann deinen Parameter in der GET variabel.
Um die inhalte zu laden nimmst du dann include()
mfg Joey
Such mal im Forum, da gibt’s auch schöne Ergebnisse:
Das ist in etwa das gängigste:
<?php
$pages = array('index' => "index.html", 'test' => "test.html", 'impressum' => "impressum.html");
$page = $_GET['page'];
include "seite/header.html";
if(isset($pages[$page]))
include "seite/".$pages[$page];
elseif($page)
include "seite/404.html";
else
include "seite/index.html";
include "seite/footer.html";
Alle deine HTML-Seiten kommen nach “seite/”, der erste konstante Teil kommt in die “header.html”, der 2te in die “footer.html”, ich hab hier noch eine 404.html eingeführt, aber deren Verwendungszweck sollte klar sein
Alle anderen Seiten können im Array $seiten definiert werden.
Der Code ist kompatibel zu dieser .htaccess:
RewriteEngine On
RewriteRule ^(.*).html$ index.php?page=$1 [QSA]
Wenn man wirklich auf jeder Seite nur den gleichen Kram wie
Kopf, Fuß, Menü einbinden will, braucht man da keinen
GET-Parameter. Man erstellt einfach die Inhalte in
Einzeldokumenten und bindet da die immer gleichen Fragmente
per include ein.
Die Methode klappt, solange man nicht verschiedene Inhalte
flexibel miteinander kombinieren will und ist deutlich einfacher,
stabiler und auch sicherer, weil man die GET-Parameter gar nicht
abfragen und auswerten muß.
Beim Menü sollte man übrigens besser ein Skript verwenden,
welches den Verweis zur aktuellen Seite entsorgt oder zumindest
die Verweisfunktionalität, weil ein Verweis zur aktuellen Seite ja
offenbar überflüssig oder für einige Nutzer sogar verwirrend ist.