1.Beispiel |
das aktuelle Datum
|
|
Der Verweis
"http://localhost/cgi-bin/Date.rb"
zeigt auf ein Programm
Date.rb
im Verzeichnis
des HTTP-Servers
cgi-bin,
in dem Skripte (Programme)
liegen, die HTML-Seiten dynamisch erzeugen.
|
|
Die Quelle
|
Formatierung |
das aktuelle Datum, nach deutschen Konventionen
formatiert und eine Quelle.
|
|
|
2.Beispiel |
The Message Of The Day
|
|
|
3.Beispiel |
die Umgebung eines CGI-Skripts (Version 1.0)
|
|
Dieses shell-Skript
test-cgi
wurde bei älteren Versionen des Apache Servers für CGI 1.0 mitgeliefert.
|
|
Ein etwas vollständigeres, in Tcl geschriebenes Skript
test.cgi
und die Quellen
|
|
|
CGI 1.1 Version |
die Umgebung eines CGI-Skripts (CGI Version 1.1)
|
|
Dieses shell-Skript
test-cgi-1.1
wird aus Sicherheitsgründen nicht mehr bei den Apache Servern installiert.
|
|
|
CGI Umgebung mit Ruby |
die Umgebung eines CGI-Skripts mit Ruby ausgelesen
|
|
Die Quelle dieses Ruby-Skrips
test.rb.
|
|
|
CGI-Parameter |
Skripte können mit Parametern versorgt werden, indem an den
URL ein Suchstring angehängt wird:
|
|
http://localhost/cgi-bin/test-cgi?NAME=wert&NAME2=wert2
|
|
http://localhost/cgi-bin/test.rb?NAME=wert&NAME2=wert2
|
|
Hierbei ist zu beachten, dass viele Zeichen durch
Ersatzdarstellungen zu ersetzen sind.
|
|
Es werden zum Beispiel
NAME=wert Paare durch ein & getrennt.
Ein Zwischenraum wird durch ein + Zeichen ersetzt.
|
|
Sonderzeichen werden durch eine Hexadezimalzahl ( %xx )
dargestellt.
|
|
|
|
Bei Formularen übernimmt der Browser die Codierung, ruft man die
Skripte direkt auf, muss man diese Codierung selbst machen.
|
|
Beispiel:
http://localhost/cgi-bin/ test.rb?NAME1=wert1&NAME2=a+b+c&NAME3=%2F%2F%2F
|
|
|
versteckte Felder |
versteckte Felder (hidden input fields) können zusätzlich
zu den sichtbaren Feldern Information an den server
enthalten.
|
|
Diese werden häufig zur Speicherung eines Zustandes bei
einem Dialog verwendet.
|
|
|
|
mit einem versteckten Feld.
|
|
|
CGI-Skripte als Filter |
für vorgefertigte HTML-Schablonen
|
|
An den URL für das Skript kann ein Dateipfad angehängt werden,
dieser wird in der Umgebungsvariablen PATH_INFO an das
Skript übergeben
der zugehörige absolute Pfad im Dateisystem des servers wird in
PATH_TRANSLATED übergeben. |
|
Diese Datei wird dann typischerweise vom Skript gelesen und
daraus ein echtes HTML-Dokument erzeugt.
|
|
|
Beispiel |
http://localhost/cgi-bin/test.rb/~si/index.html
|
|
CGI-Skripte bitte immer so schreiben, dass die Seite vollständig
erzeugt wird und mit einem Kommando auf stdout geschrieben wird.
|
|
Anderenfalls kann keine vernünftige Fehlerbehandlung durchgeführt werden,
wenn bei der Erzeugung ein Fehler passiert
(Beispiel: http://www.hardwarehouse.de/catalog/account_history_info.php?order_id=8071).
|