web::request ?options? ?key? ?value?
web::request ?key? ?default?
Options are: -count, -set, -lappend, -names, -unset, -reset and -channel
web::request is an accessor to request specific information: either CGI related (stand alone Websh) or Apache related (mod_websh).
key
								?default?keykeykey
								value
								?value?
								?...?key
								value
								?value?
								?...?keySpecial case for handling Basic Auth:
The following example provides a basic app that requires Basic Auth and completely bypasses Apache's auth mechanisms.
Example 7. web::request AUTH_USER and web::request AUTH_PW
# returns 1 if user/pass provided is websh/websh
proc isAuthenticated {} {
    if {[web::request -count AUTH_USER]} {
	set user [web::request AUTH_USER]
	set pass [web::request AUTH_PW]
	if {[string eq $user "websh"] && [string eq $pass "websh"]} {
	    return 1
	}
    }
    return 0
}
# the default command requests Basic Auth unless provided correctly
web::command default {
    if {![isAuthenticated]} {
	web::response -set Status {401 Authorization Required}
	web::response -set WWW-Authenticate {Basic realm="Websh auth"}
	web::put "Sorry, you're out"
    } else {
	web::put "You're in"
    }
}
# command dispath
web::dispatch
	  
				
				Note: CGI usually does not expose the Basic Auth
				Authorization header for security reasons. The following configuration
				for Apache (as of version 2.0.51) will allow Websh to also provide the
				same functionality when running in CGI (requires mod_setenvif):
			
Example 8. Apache configuration for AUTH_USER and AUTH_PW to work under CGI
SetEnvIf Authorization "^(Basic .+)$" AUTH_BASIC=$1
				Important security consideration: This configuration
				will also expose the authentication information to Websh when Apache does
				handle the authentication. Although Websh hides the information in that
				case, it is always available in the CGI environment. Use this configuration
				carefully!
			
web::param ?option? ?key? ?value? ?...?Options are: -count, -set, -lappend, -names, and -unset
				web::param is an accessor to state information from the
				querystring. Suppose the querystring is "lang=EN".
				After web::dispatch has parsed the querystring,
				web::param lang will
				report EN. Additionaly,
				web::param can manage this data and add, append, and delete
				parameters as needed.
			
key
								?default?keykeykey value
								?value?
								?...?key
								value
								?value?
								?...?key
web::formvar ?options? ?key? ?value?
Exactly like web::param.
web::formvar is an accessor to HTML FORM data. After web::dispatch has parsed the POST data, you can access all form fields using web::formvar.
In addition to this, web::formvar can also handle files uploaded via Netscape 2.0 file upload mechanism. In this case, the result of web::formvar is a list with four elements: The first element contains the name of the locally saved file; the second element contains the remote file name; the third element is set to 0 if the upload was successful, -1 if upload is disabled (see web::config uploadfilesize) and n > 0 if n Bytes have been truncated, because the file was too big. The last element contains the mime type of the file.
Note that the temporary files are created with the permissions configured by web::config filepermissions, which defaults to 0644.
Example 9. web::param
% web::request CONTENT_LENGTH % web::dispatch -querystring "cmd=default&t=100" -postdata "" -cmd "" % web::param -names t cmd % web::param cmd default % web::param -set k v v % web::param -names t cmd k %