REBOL [ Title: "REBOL CGI Test Script" Version: 0.0.2 Name: "CGI-Test" File: %test.r Date: 17-Jan-2005 Author: "Dirk Weyand" E-Mail: "D.Weyand--TGD-Consulting--DE" Owner: "TGD-Consulting" Rights: "TGD-Consulting" Home: http://www.TGD-Consulting.DE Needs: "Serve-It! or any other webserver featuring REBOL CGI-Scripts." Purpose: "REBOL Test CGI-Script for Serve-It!" License: "Freeware as long as you give credit to the author" Library: [ level: 'intermediate platform: 'all type: [tool] domain: [cgi html web] tested-under: [view 1.2.1.1.1 on "AmigaOS 68k"] support: none license: 'PD see-also: "Serve-It!, at http://www.TGD-Consulting.de/Download.html" ] ] emit-tbl-row: func [ {Prints HTML-table row to STDOUT.} type [string!] "text of first column." content [string!] "text of second column." colors [block! unset!] "Colors of the columns." /local row foo ][ if error? try [unset? colors] [colors: copy []] row: copy {} insert row content if none? foo: pick colors 2 [foo: {"white"}] insert row join {"] if none? foo: pick colors 1 [foo: {"white"}] insert row join {} type {}] print row ] ; -- HTML-Document starts here ---------------------------------------------------------------------- print {

} ; -- Header-Rows ------------------------------------------------------------------------------------ emit-tbl-row {

Serve-It! (© TGD-Consulting)

} join {Using: REBOL/} [system/product " " system/version "
Built: " system/build "
Script: " system/script/header/Version " " system/script/header/Date "
"] [] emit-tbl-row "Server Data/Time:" form now [{"#C0C060"}] emit-tbl-row "Current Dir:" form what-dir [{"#C0C060"}] ; -- Base-Rows -------------------------------------------------------------------------------------- foo: third system/options/cgi ; Werte des CGI-Objektes until [ emit-tbl-row join form first foo ":" form second foo [{"#F0F080"}] lesser-or-equal? length? foo: skip foo 2 2 ] ; -- HTTP-Header Rows ------------------------------------------------------------------------------- either empty? foo: last foo [ emit-tbl-row form "other-headers" form foo [{"#F0C080"}] ][ headers: copy [] until [ insert/only headers reduce [uppercase form pick foo 1 form pick foo 2] tail? foo: skip foo 2 ] sort headers foreach foo headers [ emit-tbl-row join "HTTP_" [first foo ":"] second foo [{"#F0C080"}] ] ] ; -- End of HTML-Document --------------------------------------------------------------------------- print {

} ;halt