home *** CD-ROM | disk | FTP | other *** search
/ Magazyn WWW 1999 July / www_07_1999.iso / prez / amiga / apache_1_0_5.lha / apache_1.0.5 / cgi-bin / test-cgi.tcl < prev    next >
Text File  |  1994-01-22  |  1KB  |  57 lines

  1. #!/usr/local/bin/tclsh
  2. # tcl-cgi.tcl
  3. # robert.bagwill@nist.gov, no warranty, no rights reserved
  4. # print out command line args, stdin, and environment variables
  5. #
  6. set envvars {SERVER_SOFTWARE SERVER_NAME GATEWAY_INTERFACE SERVER_PROTOCOL SERVER_PORT REQUEST_METHOD PATH_INFO PATH_TRANSLATED SCRIPT_NAME QUERY_STRING REMOTE_HOST REMOTE_ADDR REMOTE_USER AUTH_TYPE CONTENT_TYPE CONTENT_LENGTH HTTP_ACCEPT}
  7.  
  8. puts "Content-type: text/HTML\n"
  9. puts "<HTML>"
  10. puts "<HEAD>"
  11. puts "<TITLE>CGI/1.0 TCL script report:</TITLE>"
  12. puts "</HEAD>"
  13.  
  14. puts "<BODY>"
  15. puts "<H1>Command Line Arguments</H1>"
  16. puts "argc is $argc. argv is $argv."
  17. puts ""
  18.  
  19. puts "<H1>Message</H1>"
  20. puts "<PRE>"
  21. set message [split [read stdin $env(CONTENT_LENGTH)] &]
  22. foreach pair $message {
  23.     set name [lindex [split $pair =] 0]
  24.     set val [lindex [split $pair =] 1]
  25.     regsub -all {\+} $val { } val
  26.     # kludge to unescape chars
  27.     regsub -all {\%0A} $val \n\t val
  28.     regsub -all {\%2C} $val {,} val
  29.     regsub -all {\%27} $val {'} val
  30.     puts "$name\t= $val"
  31. }
  32. puts "</PRE>"
  33.  
  34. puts "<H1>Environment Variables</H1>"
  35. puts "<DL>"
  36. foreach var $envvars {
  37.     if {[info exists env($var)]} {
  38.         puts -nonewline "<DT>$var"
  39.         eval {set val $env($var)}
  40.         if {[llength $val] > 1} {
  41.             puts "<DD>"
  42.             foreach subval [lsort $val] {
  43.                 puts "$subval"
  44.             }
  45.         } else {
  46.             puts "<DD>$val"
  47.         }
  48.     }
  49. }
  50. puts "</DL>"
  51. puts "</BODY>"
  52. puts "</HTML>"
  53. ######################
  54. # end of tcl-cgi.tcl
  55. ######################
  56.  
  57.