Inhaltsverzeichnis
CGI-Scripte
Folgende Ausführungen zur Erstellung von CGI-Scripten mit TUSCRIPT wurden von - [ schaelkle | schaelkle ] auf dem TUSTEP-Workshop 2012 in Blaubeuren vorgestellt und von - schneider-lastin leicht verändert ins Wiki übernommen.
Zurück zum Inhaltsverzeichnis - Lösungen und Tipps
Vorbemerkungen
Common Gateway Interface
- Das Common Gateway Interface (CGI) ist ein Standard für den Datenaustausch zwischen einem Webserver und dritter Software, die Anfragen bearbeitet. Dieser Standard ermöglicht es WWW-Browsern, Programme (Scripte) auf WWW-Servern auszuführen. Mit CGI können HTML-Seiten dynamisch erstellt werden, die zur Zeit der Anfrage noch nicht auf dem Server existieren, sondern erst von dem CGI-Script erzeugt werden.
- Scripte sind in ASCII-Dateien stehende Anweisungsfolgen.
- Scripte müssen in fest vorgegebenen Verzeichnissen stehen.
- WWW-Server kann auch der eigene PC sein.
Aufruf von TUSTEP auf einem WWW-Server
- TUSTEP erwartet bestimmte Informationen in Systemvariablen.
- Diese Systemvariablen werden mit einem Script definiert.
- Erst dann wird TUSTEP (unter WINDOWS automatisch) aufgerufen.
Aufruf eines CGI-Scripts über WWW
Client:
- Browser aufrufen; Servername, Scriptname und evt. Anfragetext eingeben.
http://servername/cgi-bin/scriptname?anfragetext
- Browser schickt den Scriptnamen und ggf. den Anfragetext zum Server.
Server:
- Server setzt Systemvariablen und ruft das Script.
SERVER_NAME, SCRIPT_NAME, QUERY_STRING, …
- Script setzt Systemvariablen und ruft TUSTEP.
TUSTEP_CGI, TUSTEP_DSK, TUSTEP_SCR, …
- TUSTEP ruft das mit TUSTEP_CGI vorgegebene Script.
- Das CGI-Script erzeugt eine HTML-Datei.
- Server schickt die HTML-Datei zurück.
Client:
- Browser zeigt die HTML-Datei an.
Script-Aufruf wird vom Server zerlegt
Aufruf des Scripts:
http://localhost/cgi-bin/wochentag?TAG=6&MONAT=1&JAHR=2014
Der Server zerlegt den Aufruf in drei Teile und speichert sie in Systemvariablen.
Abfragen der Systemvariablen:
FETCH server = SERVER_NAME server: localhost FETCH script = SCRIPT_NAME script: /cgi-bin/wochentag FETCH query = QUERY_STRING falls METHOD=GET query: TAG=6&MONAT=1&JAHR=2014 FETCH query = -STD- falls METHOD=POST
Anfragetext muss vom Script zerlegt werden
SET liste = DECODE (query, CGI) liste: TAG=6 MONAT=1 JAHR=2014 SET tag = GET_VALUE (liste, "TAG") tag: 6 SET monat = GET_VALUE (liste, "MONAT") monat: 1 SET jahr = GET_VALUE (liste, "JAHR") jahr: 2014
Schritt 1: Einrichten eines Server-Verzeichnisses
#DATEI, server, PROJEKT, c
Schritt 2: Starten des Servers
Schritt 3: Einrichten eines CGI-Scripts
Schritt 4: Aufruf des Scripts
Erstellen eines eigenen CGI-Scripts
1. Anmelden der Datei 'tustep.ini' und Öffnen der Standard-Editor-Datei
#ANMELDE, server*tustep.ini, TRAEGER=C #EDIERE,-std-
2. Schreiben des Scripts in der Standard-Editor-Datei
$$ MODE TUSCRIPT, {} FETCH server = SERVER_NAME FETCH script = SCRIPT_NAME SET url = "http://{server}{script}" SET zeit = TIME_3 () = $ <HTML> <HEAD> <TITLE>Uhrzeit</TITLE> </HEAD> <BODY> <FORM ACTION="url" METHOD=POST> <p>Es ist jetzt {zeit} Uhr.</p> <p><INPUT TYPE=SUBMIT VALUE="Aktualisieren"/></p> </FORM> </BODY> </HTML>
3. Retten des Scripts aus der Standard-Editor-Datei als Segment in die Datei 'tustep.ini'
r,server*tustep.ini,uhrzeit
4. Aufruf des Scripts
http://localhost/uhrzeit