homeUnix & Internet Unix & Shell-Programmierung: CGI Skripte Prof. Dr. Uwe Schmidt FH Wedel

CGI Skripte

weiter

weiter

CGI Skripte

1.Beispiel
 
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.
Formatierung
das aktuelle Datum, nach deutschen Konventionen formatiert und eine Quelle.
weiter
2.Beispiel
weiter
3.Beispiel
 
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
weiter
CGI 1.1 Version
 
Dieses shell-Skript test-cgi-1.1 wird aus Sicherheitsgründen nicht mehr bei den Apache Servern installiert.
weiter
CGI Umgebung mit Ruby
 
Die Quelle dieses Ruby-Skrips test.rb.
weiter
CGI-Parameter
Skripte können mit Parametern versorgt werden, indem an den URL ein Suchstring angehängt wird:
 
 
 
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.
weiter
Bei Formularen übernimmt der Browser die Codierung, ruft man die Skripte direkt auf, muss man diese Codierung selbst machen.
 
weiter
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.
weiter
mit einem versteckten Feld.
 
weiter
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.
weiter
Beispiel
merke
CGI-Skripte bitte immer so schreiben, dass die Seite vollständig erzeugt wird und mit einem Kommando auf stdout geschrieben wird.
merke
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).

Letzte Änderung: 14.02.2012
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel