home *** CD-ROM | disk | FTP | other *** search
/ Practical Programming in Tcl & Tk (4th Edition) / TCLBOOK4.BIN / pc / exsource.old / 3_10.tcl < prev    next >
Text File  |  2003-04-15  |  1KB  |  67 lines

  1. #
  2. # Example 3-10
  3. # The newguest.cgi script with error handling.
  4. #
  5.  
  6. #!/bin/sh
  7. # \
  8. exec tclsh "$0" ${1+"$@"}
  9.  
  10. # Trap all errors
  11.  
  12. if {[catch {
  13.  
  14. # Use the ncgi package from tcllib to process form data
  15.  
  16. package require ncgi
  17. ncgi::parse
  18.  
  19. # Load our data file and supporting procedures 
  20.  
  21. set dir [file dirname [info script]]
  22. set datafile [file join $dir guestbook.data]
  23. source [file join $dir cgihacks.tcl]
  24.  
  25. # Open the datafile in append mode
  26.  
  27. set out [open $datafile a]
  28.  
  29. # Append a Tcl set command that defines the guest's entry
  30.  
  31. puts $out ""
  32. puts $out [list set Guestbook([ncgi::value name]) \
  33.     [list [ncgi::value url] [ncgi::value html]]]
  34. close $out
  35.  
  36. # Return a page to the browser
  37.  
  38. Cgi_Header "Guestbook Registration Confirmed" \
  39.     {BGCOLOR=white TEXT=black}
  40.  
  41. puts "
  42. <TABLE BORDER=1>
  43. <TR><TD>Name</TD>
  44. <TD>[ncgi::value name]</TD></TR>
  45. <TR><TD>URL</TD>
  46. <TD><A HREF=\" [ncgi::value url]\" >[ncgi::value url]</A></TD></TR>
  47. <TR><TD>Extra HTML</TD>
  48. <TD>[ncgi::value html]</TD></TR>
  49. </TABLE>
  50. </BODY></HTML>
  51. "
  52.  
  53. # End of main script
  54.  
  55. } err]} {
  56.  
  57.     # Error occured - display in the Web page
  58.  
  59.     puts "Content-Type: text/plain"
  60.     puts ""
  61.     puts "CGI error occurred in [info script]"
  62.     puts $errorInfo
  63.  
  64. }
  65.  
  66.  
  67.