[html+php] Sind Frames gut oder schlecht?

tempo.1

Cadet 4th Year
Registriert
Feb. 2007
Beiträge
93
Servus,

oft wird behauptet, dass frames schlecht sind, jedoch habe ich keine alternative zu
HTML:
<base target="Hauptframe">
gefunden.
Wie kann ich denn mit PHP-Code: include oder diversen anderen derivaten das selbe erreichen?
Unter anderem ist mein Ziel auch, dass die ladezeit veringert wird (bei include wird jedesmal die Menüleiste mitgeladen).
Desweiteren habe ich zwei Layouts, die beide die gleichen inhalte aufrufen, jedoch unterschiedliche Menüs haben. Also, bei der einen Darstellung ist das Menü unten:
HTML:
<frameset rows="*,30">
bei der anderen links:
HTML:
<frameset cols="275,*">
Wie gesagt ist beides mal <base target="Hauptframe"> das Ziel

Gruß

Edit:
und drittens sollte wenn möglich nicht der ganze php Krempel sichtbar sein:
PHP:
window.php?name=Startseite&link=sel&dir=1&sort=2&zeilen=3&show=0&fram=aus&post=true&id=223&id2=443&qoute=ja&p=445&zurück=1&vor=2&letztes=470129&erstes=1 ... usw
 
Zuletzt bearbeitet:
Zu deinem Frameproblem kann ich nicht viel sagen da ich hauptsächlich mit Tabellen, Boxen und CSS arbeite. Damit bekommt man eigentlich alles hin.

Zu deinem Edit:

Verpacke die komplexe URL mit Parametern in eine einfach gestrickte PHP Datei (z.B. "window.php" per include Befehl.
 
Servus,

schonmal nicht schlecht.
Aber:
bei meinem komplexem URL Bsp sind ca. 15 Variablen übergeben.
Wenn jede nur zwei Werte annehmen kann, dann bräuchte ich ja unzählige window.php's.
also:
in window1.php steht:
PHP:
window.php?name=Startseite&link=sel&...
in window2.php steht:
PHP:
window.php?name=Kontakt&link=sel&...
in window3.php steht:
PHP:
window.php?name=Startseite&link=sorl&...
in window4.php steht:
PHP:
window.php?name=Kontakt&link=sorl&...
usw...
oder hab ich da was falsch verstanden?

Gruß
 
Zum Thema Frames:
Ich pernsönlich kann Seiten mit Frames gar nicht leiden, irgendwie bekommt man gleich das Gefühl, die Seite sei mit Frontpage erstellt worden...:D


Stattdessen kann man natürlich entweder mit include arbeiten, wobei aber bei jedem Klick alles neu geladen wird.

Die andere Möglichkeit wäre es mit AJAX zu arbeiten, dann wird aber das ganze etwas aufwändiger.

Zum anderen Problem mit den Variablen:
Ich versuche normlerweise nicht alle Teile einer Webseite in eine Datei zu packen, denn dabei muss der PHP-Intrpreter immer die komplette Datei lesen. Eine andere Möglichkeit ist es z.b. eine index.php,eine kontakt.php, eine home.php, etc. zu haben, und in jeder Datei am Anfang und am Ende im Prinzip den Rahmen (Header, Navi, Footer...)einzubinden. Außerdem würde ich versuchen Teile der Variablen auf Cookies/Sessions zu verlegen (irgendwelche allgemeinen dinge, die nicht speziell seitenspezifisch sind, also z.b. UserID in einem Shop)Als letzte Möglichkeit kann man natürlich auch noch Werte/Variablen mit POST, statt mit GET übergeben.

Falls irgendwelche Fragen sind, meld dich einfach.

Ich hoffe ich konnte dir helfen,
Daniel
 
Servus,

Danke.
Werde mal ein bissl über AJAX und Cookies googln und mich dann nochmal melden.

Bin grad so'n bisschen am Testen, und habe jetzt mal eine Seite mit div's aufgebaut.
Vorhandene Dateien:

window.php: Grundgerüst
Rahmen.inc: Rahmen um das Hauptfenster
Menu.inc: Menüleiste

window2.php: Grundgerüst quer
Rahmenquer.inc: Rahmen um das Hauptfenster im Querformat
Menuquer.inc: Menüleiste Quer

Startseite.inc: Startseite
Kontakt.inc: kontaktseite

statt <frameset rows="*,30"> habe ich jetzt
window.php?src=Startseite:
PHP:
<html>
<head>
<title>Eigene Homepage</title>
<?php $inhalt=$_GET['src'].".inc"; ?>
</head>
<body>
      <div id="Menu"><?php include('Menu.inc'); ?></div>
      <div id="Rahmen"><?php include('Rahmen.inc'); ?></div>
      <div id="Inhalt"><?php include($inhalt); ?></div>
</body>
</html>
und statt <frameset cols="275,*"> habe ich jetzt
window2.php?src=Startseite:
PHP:
<html>
<head>
<title>Eigene Homepage</title>
<?php $inhalt=$_GET['src'].".inc"; ?>
</head>
<body>
      <div id="Menuquer"><?php include('Menuquer.inc'); ?></div>
      <div id="Rahmenquer"><?php include('Rahmenquer.inc'); ?></div>
      <div id="Inhalt"><?php include($inhalt); ?></div>
</body>
</html>
Meintest du das so? Bis auf das neu laden des gesamten Seiteninhaltes sieht es aber aus wie mein nicht mit Frontpage gemachtes Frontpagegebilde.
zusätzlich habe ich im Adressfeld:
http://www.meineHomepage.de/window.php?src=Startseite
und nicht
http://www.meineHomepage.de
Als blutiger Anfänger dachte ich, dass die Sache mit dem post nur mit formularen geht?

Gruß

Edit:
Servus

Also, die Sache mit Ajax ist mir tatsächlich zu aufwendig. Jetzt kann ich seit 3 Wochen php, da muss jetzt nicht schon wieder was neues her.

Die Anzahl der Variablen konnte ich gut mit include Rahmen, Header, Navi, Footer usw. reduzieren.
Die Werte kann man mit POST leider nur über Formular übergeben (denk ich). Deswegen die sessions - Klasse Sache, so hab ich nebenbei auch ein Benutzer und Adminbereich erstellen können, Danke, super Tip.
Aber die Vorteile einer Frame Konstruktion kann mir leider keine alternative Lösung bieten, AJAX ausgenommen.
Jedoch ist im AJAX-Paket auch JavaScript enthalten, das mag ich nich so, weil's eine Clientseitige Scriptsprache ist und nicht jeder Java Script aktiviert hat. Sofern's geht möcht ich JavaScript vermeiden.
Vom Seitenlayout kann ich leider nicht erkennen, ob es mit div kontainern oder mit frames erstellt wurde - außer ich schau in den Quelltex, und wer macht das schon?

Gruß
 
Zuletzt bearbeitet: (Nachtrag)
Zurück
Oben