Web-Seiten-Benutzer übermitteln normalerweise Informationen an Anwendungen mittels eines HTML-Formulars. Der REBOL-Programmierer kann diese Eingaben übernehmen und in seinen CGI-Skripten verwenden.
Wenn ein Programmierer Geschäftsregeln in einer Organisation implementieren muss, ist REBOL eine geeignete Lösung. Die Geschäftsregeln können auf einen benutzerdefinierten REBOL-Dialekt abgebildet werden und REBPOL selbst ist in einer Reihe von kostenlosen und kommerziellen Versionen erhältlich. Zum Beispiel kann jeder herunterladen:
REBOL/View – bietet eine grafische Benutzeroberfläche (GUI), die es dem Programmierer ermöglicht, Geschäftsregeln zu schreiben und zu testen
REBOL/Core – hat keine grafische Benutzeroberfläche und wurde für den Einsatz auf Servern entwickelt
Wenn der Programmierer also Zugang zu einem Webserver (wie Apache) hat, kann er schnell REBOL-CGI-Webseiten erstellen, die alle Benutzer sehen können. Natürlich ist der nächste Schritt für den Entwickler, REBOL CGI-Anwendungen zu erstellen, die sowohl Informationen für die Benutzer anzeigen als auch Informationen von ihnen entgegennehmen können. Dazu muss REBOL in der Lage sein, von HTML-Formularen gesendete Daten zu verarbeiten.
Ein Beispiel für ein HTML-Formular
Ein Benutzer wird Informationen in ein HTML-Formular auf einer Webseite eingeben. Der Programmierer muss zum Beispiel ein solches Formular erstellen:
<form method=get action=”\cgi-bin\process_input.r”>
Geben Sie Ihren vollständigen Namen ein:<input name=full_name>
<input type=submit>
</form>
Hier ruft das Formular die Skriptdatei “process_input.r” auf, wenn der Benutzer auf die Schaltfläche “Submit” klickt.
Identifizierung der Anforderungsmethode mit REBOL
Es gibt zwei Methoden, die der Webprogrammierer verwenden kann, um Informationen aus dem Formular an die CGI-Anwendung zu senden:
GET – Informationen werden als Teil der URL übergeben. Dies ist für den Benutzer sichtbar
POST – Informationen werden über die Standardeingabe übergeben und sind für den Benutzer unsichtbar
Die CGI-Anwendung muss daher in der Lage sein, zu erkennen, welche Methode verwendet wird, und die Eingaben entsprechend zu behandeln. Der erste Schritt besteht darin, die ersten drei obligatorischen Zeilen hinzuzufügen, die am Anfang jeder REBOL-CGI-Datei stehen müssen. Diese Zeilen sind:
die Shebang-Zeile – sie teilt dem Server mit, wo er den REBOL-Interpreter finden kann
die REBOL-Kopfzeile
die CGI-Header-Zeile
Sie werden wie folgt aussehen:
#!C:\REBOL\rebcore -c
REBOL[]
print “Inhaltstyp: text/html^/”
Und in diesem Beispiel wird die verwendete Anfragemethode im Browser angezeigt:
print system/options/cgi/request-method
Abbildung 1 (unten in diesem Artikel) zeigt die Ergebnisse bei Verwendung der GET-Methode, und Abbildung 2 zeigt die Ergebnisse bei Verwendung der POST-Methode. Der nächste Schritt besteht darin, die Eingaben entsprechend der verwendeten Sendemethode zu verarbeiten.
Verarbeitung der CGI-Eingaben mit REBOL
Die CGI-Variablen bestehen zunächst aus einer Zeichenkette, die entweder aus der als Teil der URL gesendeten Zeichenkette (im Falle der GET-Methode) oder aus der Standardeingabe (im Falle der POST-Methode) eingelesen wird. Der erste Schritt besteht also darin, die Variable zu erstellen, die diese Informationen speichern soll. In diesem Fall wurde ihr eine Anfangsgröße von 1 KB zugewiesen:
cgi-string: make string! 1024
Die CGI-Eingabe wird dann in diesen String eingelesen:
switch system/options/cgi/request-method [
“GET” [cgi-String: system/options/cgi/query-string]
“POST” [read-io system/ports/input cgi-string 1024]
]
Im Moment ist die Zeichenfolge noch nicht in einer brauchbaren Form;
alle eingegebenen Variablen werden Teil der Zeichenkette sein
die Zeichenfolge enthält Steuerzeichen
All dies kann jedoch in einer einzigen Erklärung gelöst werden:
cgi: construct decode-cgi cgi-string
Dieses neue Objekt (mit dem Namen “cgi”) enthält ein Feld für jede der CGI-Variablen, zum Beispiel:
print [ “Hallo” cgi/full_name ]
Abbildung 3 zeigt diesen einfachen Prozess in Aktion, und das ist das Wichtigste, was sich jeder Programmierer merken sollte: Es handelt sich um ein sehr einfaches Verfahren, das es dem REBOL-Programmierer jedoch ermöglicht, hoch entwickelte, auf Geschäftsregeln basierende Anwendungen zu erstellen.