Server Side Hypertext Extension Version 1.02 |
HTX-Tags können Sie einfach zusätzlich in normalen HTML-Dokumenten verwenden. Damit der Server weiß, daß es sich um Dokumente handelt, die HTX-Tags enthalten, verwenden Sie für diese Dokumente die Extension .htx. Also z.B. hauptseite.htx oder index.htx.
Wenn Sie ein HTX-Dokument mit einem Fragestring aufrufen finden Sie diesen in der Variablen
hauptseite.htx?sprache=Deutsch Auch wenn Sie ein HTX-Dokument über ein Formular ( <FORM> ) aufrufen, finden Sie den übermittelten Inhalt der Felder jeweils mit <VAR feldname>. Bei Formularen werden die Methoden GET und POST unterstützt.
|
Übersicht
CALC Reservierte Variablen
|
Syntax der HTX-Befehle |
HTX-Befehle stehen immer in einer eigenen Zeile und werden in der für HTML üblichen
Form <Befehl> angegeben.
Die HTX-Variablen <VAR name>, <COUNTER name> und <LEN string> können frei mit HTML-Code oder HTX-Befehlen, auch in der selben Zeile,
gemischt werden.
Übersicht der HTX-Befehle |
<CALC Variable = Formel>
Der Befehl CALC gibt der Variablen den Wert der Berechnung der Formel.
Die Formel kann HTX-Variablen und Zahlen und die Grundrechenarten (+,-,*,/) enthalten.
Das Beispiel gibt mit dem Befehl <VAR resultat> den Wert der Berechnung aus:
<CALC resultat=5*5>
<CALC resultat=resultat/2>
<VAR resultat>
<COUNTER countername>
Der Befehl COUNTER zeigt den Wert des Counters countername an, und erhöht
diesen um 1.
Den Namen (immer in Kleinbuchstaben) können Sie frei wählen, und so beliebig
viele Counter installieren. Der aktuelle Wert des jeweiligen
Couters wird in Ihrem Datenverzeichnis /data in einer ASCII-Datei mit dem
Namen countername.count gespeichert.
<DBDELETE "datei" "feldinhalt_1|feldinhalt_2|...|feldinhalt_n">
Der Befehl DBDELET löscht aus der Datenbank datei den Datensatz feldinhalt_1|feldinhalt_2|...|feldinhalt_n.
Folgendes Beispiel löscht den Kunden "Martin Meier" aus der Datenbank:
<DBDELETE "kunden" "Herr|Martin|Meier">
<DBREAD "datei" "feldname_1|feldname_2|...|feldname_n"> HTML- und HTX-Tags <DBEND>
Der Befehl DBREAD öffnet die Datenbank datei, und führt für alle Datensätze
jeweils den durch das DBREAD / DBEND Paar eingeschlossenen Code aus HTML- und HTX-Tags aus.
Die Feldeinträge des jeweiligen Datensatzes befinden sich in den Variablen
feldname_1 bis feldname_n.
Die Definition der Feldnamen wird in der gleichen Form angegeben wie die Datensätze selbst,
also jeweils getrennt durch den Feldtrenner. Dieser Feldtrenner ist ein vordefiniertes
Zeichen, das die einzelnen Felder voneinander trennt. Voreingestellt ist hier das Zeichen |
(auf der PC-Tastatur über Alt-Gr-< erreichbar).
Der DBREAD-Befehl darf nicht geschachtelt werden.
<DBWRITE "datei" "feldinhalt_1|feldinhalt_2|...|feldinhalt_n">
Der Befehl DBWRITE erzeugt in der Datenbank datei den Datensatz feldinhalt_1|feldinhalt_2|...|feldinhalt_n. Wenn die Datenbank datei noch nicht existiert, wird diese in Ihrem /data-Verzeichnis erzeugt.
Folgendes Beispiel erzeugt eine Datenbank mit vier einträgen, und gibt diese dann aus:
<DBWRITE "kunden" "Herr|Martin|Meier">
<DBWRITE "kunden" "Frau|Sonja|Schmidt">
<DBWRITE "kunden" "Frau|Angela|Berger">
<DBWRITE "kunden" "Herr|Jochen|Peters">
<DBREAD "kunden" "anrede|vorname|name">
Datensatz Nummer <VAR DB_RECORDNUMBER>:
<VAR anrede> <VAR vorname> <VAR name><BR>
<DBEND>
Zusätzlich wird hier die Sondervariable DB_RECORDNUMBER verwendet, die die laufende Nummer
des aktuellen Datensatzes enthält.
Das nachfolgende Beispiel öffnet die eben erzeugte Datenbank "kunden",
und gibt alle weiblichen Kunden aus:
<DBREAD "kunden" "anrede|vorname|name">
<IF "<VAR anrede>" EQ "Frau">
Datensatz Nummer <VAR DB_RECORDNUMBER>:
<VAR anrede> <VAR vorname> <VAR name><BR>
<ENDIF>
<DBEND>
<EXIT>
Mit dem EXIT-Befehl können Sie die Abarbeitung eines HTX-Domuments an beliebiger Stelle beenden.
<GET FILE "Datei">
Mit dem Befehl GET FILE können Sie eine Datei in das aktuelle HTX-Dokument einbinden. Mit diesem Befehl haben Sie Zugriff auf alle Dateien in Ihrem /htdocs-Verzeichnis. Die importierte Datei befindet sich dann in der Variablen <VAR FILE>.
Folgendes Beispiel importiert Ihre Index-Datei:
<GET FILE "index.htm">
<VAR FILE>
Eine häufige Anwendung ist das Verwenden von Header- und Footer-Dateien zur
Vereinheitlichung von Webseiten.
<GET HTTP "http://adresse/dokument...">
Mit dem Befehl GET HTTP können Sie ein Dokument von einem Server in das aktuelle HTX-Dokument einbinden. Eine häufige Anwendung ist das Aufrufen von CGI-Scripten (auch vom eigenen Server). Das importierte Dokument befindet sich dann in der Variablen <VAR HTTP>. Der Server wird mit der Methode GET gerufen.
Folgendes Beispiel importiert das Ergebnis einer DE-NIC-Whois-Anfrage:
<LET domain = "ibm.de">
<GET HTTP "http://www.nic.de/cgi-bin/domainreg?domain=<VAR domain>">
<VAR HTTP>
Sie können das empfangene Dokument auch mit dem IF-Befehl überprüfen, und eine
inhaltsabhängige Ausgabe erzeugen, ohne das Dokument selbst anzuzeigen.
Dieses Beispiel überprüft das Ergebnis der DE-NIC-Whois-Anfrage:
<IF "ist noch frei" CIN "<VAR HTTP>">
Die Domain ist noch frei!<BR>
<ELSE>
Die Domain ist leider schon vergeben!<BR>
<ENDIF>
<IF "Parameter1" Operator "Parameter2"> HTML-Code <ELSE> HTML-Code <ENDIF>
-
Der IF-Befehl überprüft Parameter1 und Parameter2 mit dem Operator
Folgende Operatoren stehen zur Verfügung:
EQ gleich
NE ungleich
GT größer als
GE größer gleich
LT kleiner als
LE kleiner gleich
IN Parameter2 enthält den String Parameter1
NOTIN Parameter2 enthält den String Parameter1 nicht
CIN Parameter2 enthält den String Parameter1
Groß- und Kleinschreibung wird ignoriert.
NOTCIN Parameter2 enthält den String Parameter1 nicht
Groß- und Kleinschreibung wird ignoriert.
Die Parameter müssen in Anführungszeichen stehen.
Der ELSE-Tag ist optional.
<LEN Variable>
Der Befehl LEN gibt die Länge des Strings Variable aus.
<LET Variable = "Parameter">
Der Befehl LET gibt der Variable Variable den Wert "Parameter".
Parameter muß in Anführungszeichen stehen.
Bei Variablen wird zw. Groß- und Kleinschreibung
unterschieden.
<SENDMAIL> To: Email-Adresse des Empfängers From: Email-Adresse des Absenders Subject: Betreffszeile Die eigentliche Nachricht </SENDMAIL>
Der SENDMAIL-Befehl sendet eine Nachricht an die Email-Adresse des Empfängers.
Als Absender wird die Email-Adresse des Absenders angegeben, als Betreff die unter
Subject angegebene Betreffszeile.
Das Mail-Protokoll schreibt vor, daß der Mail-Header (die Zeilen To:, From:, Subject: etc.) von der eigentlichen Nachricht mit einer Leerzeile getrennt sein muß.
<STRSPLIT string "trenner" teil1 teil2>
Der Befehl STRSPLIT trennt den String string beim ersten Vorkommen der Zeichenfolge trenner in den vorderen Teil teil1 und den hinteren Teil teil2. Der Inhalt der Variablen string wird dabei nicht verändert.
<STRRMV String "Zeichenfolge">
Der Befehl STRRMV entfernt die Zeichenfolge aus der Variablen String.
Dieses Beispiel entfernt das "www." aus einem Domainnamen:
<LET domain = "www.ihrname.com">
<STRRMV domain "www.">
<VAR Variable>
Der VAR-Befehl gibt den in der Variablen Variable gespeicherten Wert oder String aus.
<WHILE Variable> ... ... <WEND>
Mit der WHILE / WEND Kombination wird der durch diese Befehle eingeschlossene Bereich solange ausgeführt, wie Variable wahr, also ungleich Null, ist.
Folgendes Beispiel gibt die Zahlen 1-10 aus:
<LET A= "10">
<WHILE A>
<CALC B=11-A>
<CALC A=A-1>
<VAR B><BR>
<WEND>
Der WHILE-Befehl darf nicht geschachtelt werden.
Reservierte Variablen |
-
Import:
FILE - Enthält die zuletzt importierte Datei
HTTP - Enthält das zuletzt importierte HTTP-Dokument
Zeit / Datum:
TM_SEC - Sekunden der aktuellen Zeit
TM_MIN - Minuten der aktuellen Zeit
TM_HOUR - Stunden der aktuellen Zeit
TM_DAY - Tag des aktuellen Datums
TM_HOUR - Stunden der aktuellen Zeit
TM_MON - Monat des aktuellen Datums
TM_HOUR - Stunden der aktuellen Zeit
TM_YEAR - Jahr des aktuellen Datums
TM_WDAY - Wochentag aktuellen Datums (1=Montag,7=Sonntag)
Umgebungsvariablen:
(Z.T. sind, abhängig vom Status des Dokuments, zusätzliche Umgebungsvariablen verfügbar)
SERVER_SOFTWARE
-
Der Name und die Version des Informationsservers, der die
Anforderung beantwortet (und der das Gateway ausführt).
Format: name/version
-
Der Hostname des Servers, der DNS Alias oder die IP-Adresse,
wie sie in selbstreferenzierenden URL's vorkämen.
-
Die Ausgabe der CGI Spezifikation, zu der der Server
konform ist.
Format: CGI/revision
-
Der Name und der Stand des Informationsprotokolls, in der
die Anforderung gestellt wurde.
Format: protocol/revision
-
Die Portnummer an die die Anforderung gesendet wurde.
-
Die Methode, mit der die Anforderung gestellt wurde.
Für HTTP sind dies
"GET", "HEAD", "POST", usw.
-
Die MIME Typen, die der Klient akzeptiert, so wie sie im
HTTP Header enthalten waren.
Andere Protokolle könnten diese Informationen auch aus
anderer Quelle erhalten.
Jeder Bestandteil der Liste sollte laut HTTP Spezifikation
durch Komma getrennt sein.
Format: type/subtype, type/subtype
-
Eine zusätzliche vom Klienten gelieferte Pfadinformation,
d.h. Skripte sind über virtuelle Pfadnamen, die von
Zusatzinformationen am Ende des Pfades gefolgt werden können,
aufrufbar. Die Zusatzinformation wird als PATH_INFO übergeben.
Diese Information sollte zuvor vom Server dekodiert werden.
-
Der Server bietet noch eine übersetzte Version von
PATH_INFO, die auf den Pfad eine Abbildung von
virtuellen auf physischen Namen vornehmen kann.
-
Ein virtueller Pfad des auszuführenden Skripts, der
für selbst refenzierende URL's benutzt werden kann.
-
Die Information, die einem ? in einem URL,
der das Skript referenziert, folgt.
Man nennt sie die Query-Information.
Sie sollte in keiner Weise dekodiert werden.
Die Variable sollte immer gesetzt sein, falls eine Query-Information
vorhanden ist, unabhängig von der Kommandozeilendekodierung.
-
Der Hostname des Rechners, der die Anforderung gestellt hat.
Falls der Server diese Information nicht hat, so sollte
REMOTE_ADDR gesetzt sein und die Variable nicht.
-
Die IP-Adresse des Rechners, der die Anforderung gestellt hat.
-
Falls der Server Nutzer-Authentifizierung unterstützt und
das Skript einem Schutz unterliegt, so wird die
protokollspezifische Authentifizierungsmethode zur
Validierung des Nutzers verwendet.
-
Falls der Server Nutzer-Authentifizierung unterstützt und
das Skript einem Schutz unterliegt, so wird hiermit der
Nutzername übergeben, der authentifiziert wurde.
-
Falls der Server RFC 931 Identifikation unterstützt, dann
wird diese Variable auf den Namen des Nutzers, wie er vom
Server übermittelt wurde, gesetzt.
Die Benutzung dieser Variablen sollte auf die Protokollierung
begrenzt sein.
-
Für Anforderungen, an die Informationen gebunden sind, so
wie bei HTTP POST und PUT, ist hier der Typ der Daten
enthalten.
-
Dies ist die Länge der eben genannten Daten, die vom
Klienten übergeben werden.
Sonstige:
HTX_VERSION - Die HTX-Versionsnummer
DB_SEPERATOR
-
Diese Variable enthält den Feldtrenner für die Datenbankfunktionen.
Voreingestellt ist hier das Zeichen |
Wenn Sie einen anderen Feldtrennen verwenden möchten, kann dieser mit dieser Variablen definiert werden.
-
Diese Variable enthält die laufende Nummer des aktuellen Datensatzes.
Folgendes Beispiel gibt das aktuelle Datum aus:
Es ist
<IF "<VAR TM_WDAY>" EQ "0">Sonntag,<ENDIF>
<IF "<VAR TM_WDAY>" EQ "1">Montag,<ENDIF>
<IF "<VAR TM_WDAY>" EQ "2">Dienstag,<ENDIF>
<IF "<VAR TM_WDAY>" EQ "3">Mittwoch,<ENDIF>
<IF "<VAR TM_WDAY>" EQ "4">Donnerstag,<ENDIF>
<IF "<VAR TM_WDAY>" EQ "5">Freitag,<ENDIF>
<IF "<VAR TM_WDAY>" EQ "6">Samstag,<ENDIF>
der <VAR TM_DAY>.<VAR TM_MON>.19<VAR TM_YEAR>