Browsererkennung
Dein Browser:
unbekannter Browser
Standardkonformer Modus Standardkonformer Modus
Werbung
Validierung
Valid XHTML 1.1 Valid CSS
Technik

Über diese Seite

Technik

So, hier kommt der interessante Teil: Auf dieser Seite möchte ich einen kleinen Einblick in die Programmierung dieser Webseite geben.

PHP-Frontcontroller mit mod_rewrite

Während alle Vorgänger-Scripts aus einzelnen PHP-Dateien mit einem, überall vorher inkludierten Globalscript, welches alle Funktionen und die Datenbankanbindung bereitstellt und anschließlich initialisierende Vorgänge ausführt, ausgestattet waren, arbeitet diese Version mit einem Frontcontroller. Das bedeutet, dass jede Unterseite, die aufgerufen wird, von ein und demselben Script geliefert wird.

Zusätzlich ist mod_rewrite im Einsatz, der sämtliche Anfragen - bis auf Ausnahmen wie Bilder oder andere Verzeichnisse - auf den Frontcontroller leitet. Damit ist es möglich, suchmaschinenfreundliche URLs zu benutzen, obwohl im Endeffekt ein PHP-Script hinter allem steckt. Auch erkennt der Frontcontroller ungültige URLs und zeigt die entsprechende Fehlerseite an. Bei gültigen Seiten sendet das Script die entsprechenden Header-Daten für Datum, Änderungsdatum und Gültigskeitsdauer mit.

Nach oben nach oben

Intelligente Browsererkennung

Ein wichtiger Schritt, den der Frontcontroller relativ zu Beginn ausführt, ist es, den über HTTP übermittelten User-Agent zu analysieren. Aus einer Liste von gängigen Browsern wird aus dem User-Agent der vermeintliche Browser abgeleitet. In einem weiteren Schritt wird, falls der Internet Explorer erkannt wurde, die genaue Version gefiltert und spezielle Browserversions-Variablen gesetzt, die später wichtig werden.

Das Endresultat dieser Auswertung ist auf jeder Unterseite oben links in der Box "Browsererkennung" zu finden:

Browsererkennung

Nach oben nach oben

Casino-News

Template-System mit Fallunterscheidung

Wie in jedem Projekt ist auch für diese Seite wieder ein selbstgeschriebenes Template-System im Einsatz. Fertige Template-Systeme haben zwar mehr Funktionen, sind dafür aber unzweckmäßig groß. Drum schreibe ich alles selbst und habe den Vorteil, dass ich nur das habe, was ich auch wirklich brauche.

Für diese Version von theHacker.ws war unbedingt erforderlich, dass für verschiedene Browser auch unterschiedliche Ausgaben erzeugt werden konnten.
Hierzu werden die oben angesprochenen Browserversions-Variablen benutzt. Mit einer simplen if-Syntax werden direkt im Template mehrere Varianten einer Unterseite angelegt. Der Parser verzweigt genau dann in einen if-Block, wenn die Variable - es können Und-, Oder- und Nicht-Operatoren verwendet werden - gesetzt ist. Gleichzeitig wird ein Flag gesetzt, dass kennzeichnet, dass der Parser nicht den normalen Weg durchlaufen hat, sondern Alternativ-Code geliefert hat.
Wichtige Kommentare im Template, warum eine Fallunterscheidung eingesetzt wird, werden vom Parser abschließend entfernt.

Bedingungs-Template

Nach oben nach oben

Fallback auf HTML 4.01 Strict

Auf der vorherigen Seite habe ich schon erklärt, dass XHTML 1.1 mit dem speziellen Content-Type application/xhtml+xml geliefert werden muss. Wurde der Browser als Internet Explorer identifiziert oder unterstützt der Browser allgemein diesen Content-Type nicht, wird via eines Flags die Seite auf HTML 4.01 Strict zurückgestuft und stattdessen der Content-Type text/html benutzt.

Deutlich erkennbar ist das, wenn man die Box "Validierung" unten links betrachtet. Die Logos geben an, dass die Seite standardkonform ist. Ist es nicht möglich, XHTML 1.1 an den Browser auszuliefern, ändert sich auch die Grafik.

Nach oben nach oben

Kompatibilitätsmodus

Erkennt das Script, dass die Webseite aus irgendeinem Grund nicht korrekt geliefert werden kann, befindet sie sich im Kompatibilitätsmodus. Dies tritt nur ein, wenn einer der obigen zwei Fälle zutrifft:

Der Kompatibilitätsmodus wird in der Browsererkennung angezeigt:

Browsererkennung

Nach oben nach oben

Casino-News

Browser-Optimierung

theHacker.ws v3 ist getestet und optimiert in den folgenden Browsern:

Nach oben nach oben

Letzte Änderung: Donnerstag, 10. August 2006, 15:23:26 Uhr
Copyright © 2004-2008 by theHacker