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.