PHP: Frames nachladen

Werbung

von Jens Gottfried

So manchen Nachteil der beliebten Frames kann man mit Javascript ausbügeln. Zum Beispiel das Nachladen der Navigation oder anderer Seitenteile, wenn eine Seite über eine Suchmaschine aufgerufen wird. Mit PHP klappt das noch besser.

Wer Frames verwendet, hat seine Gründe. Da ist man wenig erfreut, wenn man hört, dass Seiten quasi nackt und ohne Frames geöffnet werden. So lösen Sie das Problem:

Damit das Frameset nachgeladen werden kann, muss jede Inhalts-Datei um folgendes Script erweitert werden:

 <?php
 $DATEI = "content.php"; #Name der PHP-Datei,
die das Script enthält
 if($QUERY_STRING != "") $DATEI .= "?".$QUERY_STRING;

    
      setcookie("FrameInhalt", $DATEI, time()+7200, "/");
if($Frameset != "1")
 {
 header("Location: ");

exit; #Vorsichtsmaßnahme, damit kein weiterer Code ausgeführt wird

}
 ?>
    

In der ersten Zeile geben Sie den Namen der PHP-Datei an. Verwenden Sie dazu den relativen Pfad der Datei zum Frameset. In der nächsten Zeile werden eventuell vorhandene Parameter automatisch angehängt. Danach schreibt das Script den String in ein Cookie (“FrameInhalt”), das später vom Frameset ausgelesen wird. Zuletzt überprüft das Script, ob ein Frameset existiert anhand eines weiteren Cookies.
Wenn dieses Cookie (namentlich: “Frameset”) nicht existiert, oder nicht den Wert 1 hat, wird auf das Frameset umgeleitet.

Wichtig! Dieses Script muss ganz am Beginn der Seite stehen, da sonst ein unerfreulicher Fehler auftritt: “Headers already sent!”

Die Datei mit dem Frameset muss ebenfalls modifiziert werden:

      <?php
 setcookie("Frameset",
"1", time()+7200, "/");
 if(!isset($FrameInhalt)) $FrameInhalt
= "haupt.php";
 ?>
    

Dieses Script setzt zuerst das Cookie, welches von den Inhalts-Dateien abgefragt wird. Danach prüft das Script, ob bereits ein Frameinhalt vorgegeben ist. Wenn dies nicht der Fall ist, wird die Startseite als Frameinhalt festgelegt, deren Pfad/Dateinamen Sie beliebig anpassen können.

Zuletzt muss die Datei noch im Frameset angezeigt werden:

      <frame name="content" src="<?php print
$FrameInhalt; ?>" scrolling="auto"> 

Die Vorteile dieser Lösung:
Der Besucher bekommt davon nichts mit, da alles serverseitig abläuft. Frames werden erzwungen. Javascript kann der Besucher deaktivieren, PHP nicht.

Die Nachteile:
Cookies müssen akzeptiert werden.

Weitere Beiträge:

Über Gastautor

DrWeb.de ist die "Grande Dame" des deutschen Bloggings und seit nunmehr 14 Jahren im Internet aktiv. Das beliebte Magazin richtet sich dabei an Webworker, Selbstständige, IT-Entscheider, Seitenbetreiber sowie Marketing-Verantwortliche und bietet einen Überblick im undurchdringlichen Dschungel zahlreicher "Geld verdienen im Internet" Konzepte. Werden Sie jetzt Gastautor und profitieren Sie von der großen Reichweite und den Markennamen DrWeb.de.

,

Ein Kommentar zu PHP: Frames nachladen

  1. Peter 24. Dezember 2009 at 02:24 #

    Das Frameset nachladen klappt gar nicht man bekommt zwar die Index geladen aber nicht die entsprechende main seite um die es geht wo im ganzen Script-wirwar wird den eigendlich das Cookie ausgelesen das die entsprechende PHP-Seite setzt.
    gut und schön aber nicht anwendbar

Hinterlasse eine Antwort

Bitte bei weiteren Kommentaren per Email benarichtigen! Auch möglich: Abo ohne Kommentar.

Spam protection by WP Captcha-Free