PHP frames

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?

Thanks

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 :wink:
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]

Ok hab das jetzt erfolgreich getestet. Danke!

Du benutzt GET zum Übertragen. Das würde eine URL wie diese benötigen: www.host.com/index.php?page=home

Auf anderen Seiten habe ich solche URLs gesehen: www.host.com/index.php/profil/geschichte

Wie kann man so etwas erreichen? Was ist das für eine Art der Informationsübertragung?

Hab da nichts im Internet gefunden…

du bist doch aba der PHPMaster :susp:

Sarkasmus :wink:

Ich habe normal nicht viel mit php zu tun. Bin eigentlich C Programmierer :slight_smile:

Dafür ist die .htaccess gut, die ich oben gepostet habe:

/impressum.html -> /index.php?page=impressum

:wink:

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.