====== 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 - {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|schneider-lastin}} schneider-lastin leicht verändert ins Wiki übernommen.
----
[[tuscript:loesungen:start|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 =====
#*SERVER
{{files_open:bilder:server.jpg|server.jpg}}\\ \\
===== Schritt 3: Einrichten eines CGI-Scripts =====
#*CGI
→ Datei 'tustep.ini' wird automatisch eingerichtet.\\ {{files_open:bilder:TUSCRIPT_CGI_Script_einrichten.jpg|TUSCRIPT_CGI_Script einrichten.jpg}}\\ \\
===== Schritt 4: Aufruf des Scripts =====
http://localhost/uhrzeit
{{files_open:bilder:tuscript_cgi_script_aufrufen.jpg|TUSCRIPT_CGI_Script aufrufen.jpg}}\\ \\ \\
===== 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 ()
= $
Uhrzeit
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
{{files_open:bilder:tuscript_cgi_script_aufrufen2.jpg|TUSCRIPT_CGI_Script aufrufen2.jpg}}\\ \\ **Wird fortgesetzt.**
----
[[tuscript:loesungen:start|Zurück zum Inhaltsverzeichnis - Lösungen und Tipps]]