INHALT | ZURÜCK | VOR
CGI-Scripte und Clarissa-HTTPd
Ich hätte hier gleich mal noch eine Bitte: Wenn jemand ein
CGI-Script für Clarissa-HTTPd schreibt und veröffentlichen
will, würde ich es gern per E-Mail zugesendet bekommen, damit
ich es auf der Support-Seite von Clarissa-HTTPd veröffentlichen
kann.
CGI-Scripte müßen bei Clarissa-HTTPd unter AmigaDOS selbständig
ausführbare Datei sein.
Dies sind neben Programmen/DOS-Befehlen auch AmigaDOS- und
AREXX- die mit einem Schutz-Bit S versehen worden sind.
Das setzen dieses S-Bits sollte eigentlich Problemlos mit jedem
Dateimanager wie z.B. DosControl oder DirectoryOpus gehen.
Shell-Fetischisten ;-) können das auch mit dem Befehl protect
machen. (protect pfad/scriptname +s)
Was vielleicht nicht jeder weiß, ist daß man AREXX-Scripte
durch dies S-Bit auch zu selbstständig ausführbaren Dateien
machen kann! :-))
Darüber, ob bei den AREXX-Scripten am Anfang auch noch der
Befehlsinterpreter mit angeben werden muß läßt sich wohl streiten.
(Bei mir funzt es auch ohne diese Angabe.)
Aber schaden kann es nix, wenn in die erste Zeile eines
CGI-AREXX-Scriptes wie folgt aussieht:
/* #! sys:rexxc/rx */
Unterschiede zwischen den CGI-Scripten in den Verzeichnissen
CGI-BIN und CGI-SHTML
1. Scripte in CGI-BIN müßen auf .cgi enden.
2. CGI-BIN-Scripte müßen als erstes selbständig ihren Mimetype
liefern gefolgt von einer Leerzeile.
(in einem AREXX-Script geschieht das wie folgt:
say 'Content-type: text/html'
say '' )
3. Ein CGI-BIN-Script bekommt als Argument die gesammte RestURL
übergeben, mit welcher das Script aufgerufen wurde.
Das soll heißen, alles was nach dem .cgi? folgt.
Beispiel: http://localhost/cgi-bin/test.cgi?test%20egal
ruft das CGI-Script test.cgi mit dem argument test%20egal
auf.
4. CGI-BIN-Scripte werden über einen Link (oder auch Formular)
aufgerufen. Das führende /cgi-bin/ ist dabei wichtig, damit
das Script im cgi-bin-Verzeichnis gesucht wird.
5. CGI-SHTML-Scripte können nur Textausgaben in den HTML-Code
einer SHTML-Datei einfügen.
6. Die Endung bei CGI-SHTML-Scripten hat keine Bedeutung für
die Ausführbarkeit.
7. CGI-SHTML-Scripte können nicht direkt sondern nur durch den
SSI-Befehl <!--#exec cgi="[script]"--> aus einer SHTML-Datei
heraus ausgeführt werden. (vgl. Kapitel SSI )
CGI-BIN-Scripte mit erweiterter Argumentübergabe (.cgiopt)
Das Verzeichnis cgi-bin kann auch scripte enthalten, welche
auf .cgiopt enden.
Solche Scripte werden mit zusätzlichen Argumenten aufgerufen,
welche der Browser beim Aufrufen des Scriptes an den Server sendet.
Diese zusätzlichen Argumente werden in folgender Reihenfolge
dem Script übergeben:
[Browserbezeichnung] [HOST] [Akzeptiere Sprachen] [Referer] [restliche Argumente]
[Browserbezeichnung] nur die erste Angabe (wenn der Browser also
als Netscape spooft z.B. nur Mozilla/3.0)
[HOST] die Domain über welche das Script aufgerufen wird
[Akzeptiere Sprache] String welche Sprache(n), der Server akzeptiert
Es werden aus dem Ursprünglichen String
(Zur Übergabe an das Script werden alle Leerzeichen
entfernt. Also aus de, en, * wird z.B. de,en,*)
[Referer] Datei mit kompletter URL, von welcher das Script aufgerufen
wird. (Wird nicht von allen Browsern unterstützt!!)
[restliche Argumente] Alle Argument, welche dem Script durch ein
Fragezeichen getrennt direkt in der URL übergeben
werden.
Damit das Script mit diesen Argumenten arbeiten kann, müssen diese
natürlich erstmal durch das Script getrennt werden.
in einem AREXX-Script geschieht das z.B. durch eine Zeile in der
Form: parse arg browser host sprache referer argumente
Wenn ein Teilargument keinen realen Wert hat, dann wird von
Clarissa-httpd der String NO anstelle des Wertes gesetzt.
NO ist hierbei immer in Großbuchstaben.
Ansonsten gelten für .cgiopt-Scripte die selben Regeln wie
für .cgi-Scripte im Verzeichnis cgi-bin.