Dr. Luthardt's Chemieseiten 

Backbutton Seitenaufruf Dateien einbinden Browserweiche Query String Dateigröße Datum

weiter

visitors
counter
last modified
02.07.2018

Ihr Browser unterstützt kein CSS. Das für die Darstellung dieser Webseiten intendierte Seitenlayout wird deshalb nicht angewandt / angezeigt. Ist dies nicht Ihre Absicht, so haben Sie wahrscheinlich in Ihrem Browser den Autorenmodus deaktiviert. Dennoch sind diese Seiten les- und navigierbar.
Texte der Infoboxen werden inline ausgegeben.
Bitte erlauben Sie den Autorenmodus oder verwenden Sie einen CSS-fähigen Browser, wenn Sie diese Seiten so anschauen möchten, wie sie vom Autor gestaltet wurden.

Server Side Includes

Achtung In den aktuellen Apache-Versionen hat sich die SSI-Syntax geändert. Vergleichsausdrücke mit der alten Syntax führen zu Fehlermeldungen. Sie können das alte Verhalten serverseitig per Directory mit der Anweisung SSILegacyExprParser on wieder herstellen.

An dieser Stelle soll es keine Abhandlung zu SSI's geben, die man zahlreich im Internet findet1. Ich möchte lediglich einige von mir benutzte, fertige Codezeilen vorstellen, die eventuell auch für andere nützlich sind.
SSI können teilweise JavaScript durch transparenten Code ersetzen, um die Zugänglichkeit von Webseiten unter verschiedenen clientseitigen Voraussetzungen zu vereinheitlichen und zu verbessern.
Einige Beispiele sind zum besseren Verständnis aus meinen Seiten übernommen; bitte ändern Sie Dateiverweise und reguläre Ausdrücke für Ihre Zwecke ab.

Achtung Bevor Sie SSI's verwenden können, müssen Sie Ihren Webserver hierfür konfigurieren und/oder die Namen der HTML-Dateien auf die Endung .shtml ändern.

Ein echter Backbutton

<!--#if expr="$HTTP_REFERER = /./" -->
<a href="<!--#echo var="HTTP_REFERER" -->">
<img src="imgs/prev16.gif" alt="zurück" width="30" height="16" /></a>
<!--#endif -->

Der Link zurück wird nur angezeigt, wenn man von einer anderen Seite gekommen ist; also nicht bei direkter Adresseingabe. In Kombination mit der nächsten Variante könnte man Besucher, die über einen Link von einer bestimmten Seite kommen, sofort dort hin zurück (oder sonstwo hin) schicken.

Verhindern eines direkten Seitenaufrufs

Möchte man, dass eine Unterseite eines Webangebotes nur von einer bestimmten Startseite aus aufgerufen werden kann, so läßt sich dies in den Header der Unterseite einfügen:

<!--#if expr="!($HTTP_REFERER = /localhost/ || $HTTP_REFERER = /dr-luthardt/)" -->
<meta http-equiv="refresh" content="0; URL=index.htm">
<!--#endif -->

localhost ist hier enthalten, um auf dem eignen Rechner arbeiten zu können. In dr-luthardt erkennen Sie den Identifier meiner Website. Umgeleitet wird auf die Startseite index.htm.

Dateien einbinden

<!--#include virtual="ordner/stuff.htm" -->

Damit lassen sich an beliebiger Stelle im HTML-Text wiederkehrende HTML-Textbausteine einfügen. Die Dateiendung ist eigentlich egal, nur praktisch für die getrennte Bearbeitung der Bausteine.

Browserweiche

<!--#if expr="$HTTP_USER_AGENT = /IE/ && $HTTP_USER_AGENT != /Opera/" -->
Dieser Code wird nur vom IE ausgeführt
<!--#elif expr="$HTTP_USER_AGENT != /IE/ || ($HTTP_USER_AGENT = /IE/ && $HTTP_USER_AGENT = /Opera/)" -->
Dieser Code wird nur von nicht-IE-Browsern ausgeführt
<!--#endif -->

Die doppelte Prüfung ist erforderlich, weil sich Opera per default als Opera und IE ausgibt. Die obigen Ausdrücke verhindern, dass Opera zB. ein IE-Stylesheet erhält.
Ich benutze nur diese Browserweiche auf meiner Website; sie gibt keine Fehlentscheidungen.

Mit Query-Strings das Seitenverhalten steuern

Eigentlich werden Querystrings benutzt, um Seiteninhalte dynamisch über php zu ändern. Ein wenig läßt sich auch mit SSI machen.

Prüfen, ob ein String vorhanden ist

<!--#if expr="!($QUERY_STRING)" -->
Dieser Code wird nur ausgeführt, wenn kein String übergeben wird
<!--#elif expr="$QUERY_STRING" -->
Dieser Code wird nur ausgeführt, wenn irgend ein String übergeben wird
<!--#endif -->

Auf einen bestimmten String prüfen

<!--#if expr="$QUERY_STRING = ganzGeheim" -->
Dieser Code wird nur ausgeführt, wenn der String ganzGeheim übergeben wird
<!--#endif -->

So lassen sich Teile einer Seite oder

<!--#if expr="$QUERY_STRING != ganzGeheim" -->
dies ausführen, wenn der String ganzGeheim nicht übergeben wird
<!--#endif -->

letzteres mit dem obigen Metatag kombiniert, der Seitenaufruf insgesamt von der Kenntnis des richtigen Strings abhängig machen.

Dateigrößen ausgeben

<!--#config errmsg=": file not found ⇒ please report to webmaster@xyz.de " -->
<!--#config sizefmt="abbrev" -->
Die Datei xyz ist <!--#fsize virtual="path/to/xyz" -->B groß.
<!--#config errmsg="" -->

Die erste Zeile dient zum Festlegen einer individuelen Fehlermeldung, falls die SSI-Direktive wegen des Fehlens der Datei path/to/xyz nicht ausgeführt wird. Die zweite Zeile formatiert die Größenangabe in kB, jedoch nur mit der Maßeinheit k. Die dritte Zeile erzeugt die eigentliche Ausgabe.
Praktisch, wenn man Dateien öfter ändert und die Größe automatisch anzeigen möchte. Beispiele sehen Sie in meinem Downloadbereich.
Die letzte Zeile setzt die Fehlermeldung zurück auf ihren Defaultstring.

Datum

Zunächst muss das gewünschte Format des Datums festgelegt werden, zB.:

<!--#config timefmt="%d. %m. %Y" -->

Dann kann man die letzte Änderung einer Datei automatisch ausgeben:

Letzte Änderung der Datei xyz: <!--#flastmod virtual="path/to/xyz"-->

oder die date-Angabe in den Metatags automatisieren:

<meta name="date" content="<!--#config timefmt="%Y-%m-%d"--><!--#echo var="LAST_MODIFIED"-->">

Hier wird ein anderes Zeitformat ("%Y-%m-%d") benutzt. Es ist auch nötig, wenn man Teile einer Webseite automatisch nur ab oder vor einem bestimmten Termin ausgeben möchte:

<!--#if expr="$DATE_LOCAL <= 2005-12-31" -->
Dieser Code wird nur bis zum 31. Dezember 2005 ausgegeben.
<!--#endif -->

Beachten Sie, dass hier ein Text- (String-) Vergleich stattfindet und kein logischer Datumsvergleich.
Natürlich kann man über SSI's auch mit Zeitangaben arbeiten.

           
1 Bitte haben Sie nach dem Klick auf diese Links etwas Geduld. Sie werden zu einer Metasuche weiter geleitet.

2005/02.07.2018

 nach_oben