|
SSI - Server Side IncludesEine Datei für das Menü und das auf allen Seiten? Jede
Änderung sofort in allen Seiten zu sehen? Kein Thema, solche
trivialen Aufgaben lassen sich nebenbei lösen ohne extra PHP [ Vorweg: Nicht alle Webserver unterstützen alle SSI Befehle. Ich
beschreibe hier ausschliesslich die vom Apache-Server unterstützten
Varianten. Da die meisten Hoster diesen Webserver verwenden, ist allerdings
damit zu rechnen dass es bei Ihnen funktioniert. Sollte jemand die Befehle
für den IIS [ Voraussetzung: Der Admin muss SSI erlaubt haben. Das findet man recht schnell heraus. Man nimmt folgenden Code, speichert ihn in einer Datei amissi.shtml ab, spielt diese Datei auf seinen Webspace und ruft sie dann, wie jede andere Seite auch, über den Browser auf. <html><head> <title>Am I SSI?</title> </head> <body> Es ist: <!--#echo var="DATE_LOCAL"--><br> Die Datei heisst: <!--#echo var="DOCUMENT_NAME"--><br> und Du benutzt: <!--#echo var="HTTP_USER_AGENT"--> </body> </html> Wenn hinter den Doppelpunkten ein Datum, der Dateiname und der Browsername auftauchen - dann ist SSI bei Ihnen möglich. Sollte das nicht der Fall sein, kann man versuchen SSI über die Serversteuerungsdatei .htaccess selbst einzuschalten. Näheres zur .htaccess finden Sie ein Arbeitsblatt weiter vorne: .htaccess (includes). Geht es auch mit "Options Includes" nicht, ist die SSI Funktionalität abgeschaltet. Dann kann man hier aufhören zu lesen. For those about to include oder Was kann ich mit SSI machen. Mit Hilfe von SSI kann man immer wiederkehrende Teile des HTML Codes in eine Datei auslagern und diese in allen anderen Seiten einbinden. Schauen Sie sich diese Seite an (schick gell ;) ), Sie werden Elemente finden, die auf jeder Seite gleich sind:
Das alles sind immer wiederkehrende Elemente. Warum soll man sie auf jeder einzelnen Seite immer wieder einbauen? Man stelle sich nur vor, ich würde den Link "Diverses" in der linken Spalte in "Projekte" umbenennen. Soll ich jetzt durch 100 Seiten toben? Nie. Der entsprechende Teil des HTML Codes liegt in einer Datei namens "navleft.inc" und muss nur einmal geändert werden. Nach dem Übertragen der Seite auf die Homepage, steht die Änderung in allen Seiten zur Verfügung. Man kann das soweit treiben wie ich es auch tue: Das gesamte Layout, incl. aller Menüs liegt in 5 Dateien. Nur der Mittelteil, die Stelle an der Sie gerade Lesen, ist noch in der eigentlichen Seite enthalten. So kann ich, ohne mich im geringsten um den Inhalt sorgen zu müssen, das gesamte Layout umbauen - und das in sehr kurzer Zeit. Reicht noch nicht? Okay - Sie könnten auch CGI [ SSI-Befehle für den Apache Webserverin alphabetischer Reihenfolge. Grundsätzlich die Syntax [ < font size=+1 color=#ff0000 >(HTML) Wie man sieht, ist der Aufbau eines SSI Befehls nahezu identisch mit dem einer HTML Anweisung. Bei SSI spricht man eben von 'Befehl', bei HTML von einem 'Tag'. Das sollte niemanden einschüchtern. Befehl klingt einfach besser, wenn sich Administratoren unterhalten. So easy. Das ganze steht in Kommentarzeichen [ config (Konfiguration)Dieser Befehl legt das Format fest, in dem andere Befehle ihre Ausgaben liefern. Er hat, für sich alleine genommen keine Bedeutung. Setzt man ihn nicht ein, erfolgt die Ausgabe der Daten, welche von anderen SSI Befehlen geliefert werden, nach einem intern festgelegten Standard. Dieser ist von Server zu Server unterschiedlich. sizefmt (sizeformat) - steuert die Anzeige für Dateigrößen. Hier kann man zwischen der Originalausgabe (Byte) und der kürzeren Ausgabe in Kilo oder MegaByte wälen. <!--#config sizefmt="bytes"--> - Ausgabe: 798187 Bytes<!--#config sizefmt="abbrev"--> - Ausgabe: 798 KBytes timefmt (timeformat) - regelt die Ausgabe für Zeit und Datum. Standardmässig wird das lange Format benutzt, z.B. Friday, 28-Dec-2001 12:06:52 CET benutzt. Die Ausgabe zu regeln sieht komplizierter aus, als es ist. Hier sind die Variablen:
<!--#config timefmt="%d.%m.%y - %H:%M" --> 29.12.01 - 08:22 <!--#config timefmt="%d.%B.%Y - %H:%M" --> 29.Dez.2001 - 08:22 echo - dient der Ausgabe von Systemvariablen, die der Server generell bereitstellt. Nützlich sind hier folgende:
So kann man z.B. die HTML Zeile:<a href="<!--#echo var="HTTP_REFERER" -->">zurück</a> prima für einen "zurück zur vorherigen Seite" Link verwenden. Wer alle Variablen sehen möchte, die der Webserver zur weiteren Verarbeitung bereitstellt, bekommt eine Liste mit dem Befehl: <!--#printenv -->printenv steht für print enviroment und druckt die gesamte "Umgebung" aus, die für den Webserver relevant ist. Dazu gehören die Version des Servers, das Betriebssystem, der Browser welcher gerade Informationen abfragt und vieles mehr. Eine kommentierte Ausgabe findet man auf Seite 3 dieser Grundlagenseiten. Beispiele und Umgebungsvariablen errmsg (errormessage) - Fehlermeldung wenn etwas nicht geht. Wer hier nichts eingibt, erhält die Standardfehlermeldung [an error occurred while processing this directive] <!--#errmsg "Fehler auf Seite, hauen Sie den Webmaster --> (individuell)exec (execute) - steht für 'ausführen'. Ausgeführt werden
entweder Systembefehle oder Scripte [ <!--#exec cgi="/cgi-bin/formmail.pl" --> - startet formmail flastmod (file_last_modification) - zeigt das Datum der letzten Aktualisierung der angegebenen Datei. Ebenfalls für einen Downloadbereich oder eine "Was ist neu" Seite zu benutzen. <!--#flastmod virtual="/download/tidyGUI.exe" -->fsize (filesize) - zeigt Dateigrössen. Praktisch zum Beispiel für einen Downloadbereich um dem User zu zeigen, wie lange er etwa auf den kompletten Download warten muss. Zeiten sind eigentlich unnötig. Der durchschnittliche User weiss ziemlich genau wie lange er mit seiner Hardware und seiner Leitung für ein MegaByte braucht. <!--#fsize file="Dateiname"--> - lokale Dateien (./test.zip)<!--#fsize virtual="Dateiname"--> - entfernte (http://... ) include - steht für 'einfügen'. Mit diesem Befehl kann man beliebige Dateien in die eigene Seite integrieren. <!--#include file="/vorlagen/navigationoben.inc" --><!--#include virtual="../vorlagen/navigationoben.inc" --> Der Unterschied zwischen file und virtual ist klein aber wichtig. Bei file kann man nur Pfade angeben, die relativ zu dem liegen, in dem die Seite liegt, aus dem der Befehl aufgerufen wird. Also nur Pfade die unterhalb (!) des aktuellen Verzeichnisses liegen. virtual kann Dateien von der gesamten Seite includen. Bsp:
Das war es auch schon. Mit etwas Phantasie lassen sich die eigenen Seiten
so schon etwas aufpeppen. Sei es eine Site-Map [ vor »
|