Sven Rautenberg: Sessionmanagement

Beitrag lesen

Moin!

Ich habe ein paar Fragen:

Frage 1: Warum gibt es den Iframe? Hat der irgendeinen layouttechnischen Sinn, oder würdest du auf ihn auch einfach verzichten können?

Frage 2: Hast du schon davon gehört, dass PHP auch direkt an den Browser Seiten ausliefern kann, ohne temporäre Dateien erstellen zu müssen?

Ich skizziere mal, wie "man" es "normalerweise" macht, wenn man alle seine Inhalte über ein zentrales Skript laufen läßt:

1. Alle Links enthalten einen Parameter, der den gewünschten Inhalt angibt. Du verlinkst also immer auf "start.php?page=seitenschlüsselwort" - vermutlich tust du das jetzt auch schon.
2. Wenn kein Seitenschlüsselwort angegeben ist, wird die Startseite ausgegeben.
3. Wenn ein Schlüsselwort angegeben ist, schaut start.php in einer Tabelle nach, welcher Seiteninhalt dazugehört, und gibt eine neue Seite inklusive aller Navigationen und natürlich mit dem neuen Seiteninhalt an den Browser aus.

3a. Wenn du auf dein IFrame nicht verzichten willst, gibt start.php alternativ ein dynamisch generiertes <iframe>-Tag aus, in dem sich der src-Wert entsprechend der angeforderten Seite verändert.

Beispiel dazu: angenommen, deine HTML-Seiten, die im Iframe angezeigt werden sollen, liegen alle im Verzeichnis "pages" und heißen "index.html" und "seite1.html".

In der start.php mußt du dann im Prinzip abfragen, welche gewünschte Seite ausgegeben werden soll:

if (not isset($_GET['page'])) {
  echo "<iframe src='index.html'>";
}
else
{
  switch $_GET['page'] {
    case "seite1": echo "<iframe src='seite1.html'>"; break;
    case "seite2": echo "<iframe src='seite2.html'>"; break;
    default:       echo "<iframe src='index.html'>"; break;
  }
}

Zuerst prüfst du, ob überhaupt ein Wert angegeben wurde. Wenn nein, wird die Standardseite eingebunden.

Andernfalls wird geschaut, welches Schlüsselwort angefordert wurde, um daraufhin die zugehörige Seite einzubinden.

Wenn du auf den IFrame verzichten kannst, solltest du anstelle des echo-Befehls einfach den Befehl readfile() benutzen, dem du den Dateinamen der auszugebenden Seite übergibst.

- Sven Rautenberg