You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rivet-dev@tcl.apache.org by mx...@apache.org on 2010/04/12 11:37:47 UTC
svn commit: r933166 [3/4] - /tcl/rivet/trunk/doc/html/
Modified: tcl/rivet/trunk/doc/html/rivet.html
URL: http://svn.apache.org/viewvc/tcl/rivet/trunk/doc/html/rivet.html?rev=933166&r1=933165&r2=933166&view=diff
==============================================================================
--- tcl/rivet/trunk/doc/html/rivet.html (original)
+++ tcl/rivet/trunk/doc/html/rivet.html Mon Apr 12 09:37:46 2010
@@ -1,8 +1,10 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Apache Rivet</title><link rel="stylesheet" href="rivet.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id2940796"></a>Apache Rivet</h2></div><div><div class="author"><h3 class="author"><span class="firstname">The Rivet Team</span></h3><div class="affiliation"><span class="orgname">The Apache Software Foundation<br></span><div class="address"><p><br>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Apache Rivet</title><link rel="stylesheet" href="rivet.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" title="Apache Rivet"><div class="titlepage"><div><div><h2 class="title"><a name="id2714515"></a>Apache Rivet</h2></div><div><div class="author"><h3 class="author"><span class="firstname">The Rivet Team</span></h3><div class="affiliation"><span class="orgname">The Apache Software Foundation<br></span><div class="address"><p><br>
<code class="email"><<a class="email" href="mailto:rivet-dev@tcl.apache.org">rivet-dev@tcl.apache.org</a>></code><br>
- </p></div></div></div></div><div><p class="copyright">Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apache Software Foundation</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#introduction">Introduction to Apache Rivet</a></span></dt><dt><span class="section"><a href="#installation">Apache Rivet Installation</a></span></dt><dt><span class="section"><a href="#directives">Rivet Apache Directives</a></span></dt><dt><span class="section"><a href="#commands">Rivet Tcl Commands and Variables</a></span></dt><dt><span class="section"><a href="#examples">Examples and Usage</a></span></dt><dt><span class="section"><a href="#tcl_packages">Rivet Tcl Packages</a></span></dt><dt><span class="section"><a href="#dio">DIO - Database Interface Objects</a></span></dt><dt><span class="section"><a href="#diodisplay">DIODisplay - Database Interface Objects Display Class</a></span></dt><dt><span class="section"><a href=
"#session_package">Session Package</a></span></dt><dd><dl><dt><span class="section"><a href="#id2979367">Introduction</a></span></dt><dt><span class="section"><a href="#requirements">Requirements</a></span></dt><dt><span class="section"><a href="#id2979391">Preparing To Use It</a></span></dt><dt><span class="section"><a href="#id2979440">Example Usage</a></span></dt><dt><span class="section"><a href="#id2979506">Using Sessions From Your Code</a></span></dt><dt><span class="section"><a href="#id2979714">Session Configuration Options</a></span></dt><dt><span class="section"><a href="#id2979968">Session Methods</a></span></dt><dt><span class="section"><a href="#id2980207">Getting Additional Randomness From The Entropy File</a></span></dt></dl></dd><dt><span class="section"><a href="#help">Resources - How to Get Help</a></span></dt><dd><dl><dt><span class="section"><a href="#id2981244">Mailing Lists</a></span></dt><dt><span class="section"><a href="#id2980637">Newsgroup</a></spa
n></dt><dt><span class="section"><a href="#websites">Web Sites</a></span></dt><dt><span class="section"><a href="#id2981330">Bug Tracking System</a></span></dt><dt><span class="section"><a href="#id2981348">IRC</a></span></dt><dt><span class="section"><a href="#id2981360">Editing Rivet Template Files</a></span></dt></dl></dd><dt><span class="section"><a href="#internals">Rivet Internals</a></span></dt><dd><dl><dt><span class="section"><a href="#id2981073">Initialization</a></span></dt><dt><span class="section"><a href="#id2980739">RivetChan</a></span></dt><dt><span class="section"><a href="#id2981717">The <span style="font-family:monospace"><span class="command"><strong>global</strong></span></span> Command</a></span></dt><dt><span class="section"><a href="#id2981769">Page Parsing, Execution and Caching</a></span></dt><dt><span class="section"><a href="#id2981824">Debugging Rivet and Apache</a></span></dt></dl></dd><dt><span class="section"><a href="#upgrading">Upgrading fro
m mod_dtcl or NeoWebScript</a></span></dt><dd><dl><dt><span class="section"><a href="#id2981689">mod_dtcl</a></span></dt><dt><span class="section"><a href="#id2981676">NeoWebScript</a></span></dt></dl></dd></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>1. <a href="#hello%20world">Hello World</a></dt><dt>2. <a href="#id2967095">Generate a Table</a></dt><dt>3. <a href="#variable_access">Variable Access</a></dt><dt>4. <a href="#file_upload">File Upload</a></dt><dt>5. <a href="#file_download">File Download</a></dt><dt>6. <a href="#ajax_xml_messaging">XML Messages and Ajax</a></dt></dl></div><p style="width:90%">
- Document revision: $Revision: 787687 $, last modified 2009-07-02 18:51:22+02:00$ by $Author: mxmanghi $.
- </p><div class="section" lang="en"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="introduction"></a>Introduction to Apache Rivet</h2></div></div></div><p style="width:90%">
+ </p></div></div></div></div><div><p class="copyright">Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apache Software Foundation</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#introduction">Introduction to Apache Rivet</a></span></dt><dt><span class="section"><a href="#installation">Apache Rivet Installation</a></span></dt><dt><span class="section"><a href="#directives">Rivet Apache Directives</a></span></dt><dt><span class="section"><a href="#commands">Rivet Tcl Commands and Variables</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="#var">var</a></span><span class="refpurpose"> — get the value of a form variable.</span></dt><dt><span class="refentrytitle"><a href="#upload">upload</a></span><span class="refpurpose"> — handle a file uploaded by a client.</span></dt><dt><span class="refentrytitle"><a href="#load_response">load_response</a></span><span class="refpurpose"> &
#8212; load form variables into an array.</span></dt><dt><span class="refentrytitle"><a href="#load_headers">load_headers</a></span><span class="refpurpose"> — get client request's headers.</span></dt><dt><span class="refentrytitle"><a href="#load_cookies">load_cookies</a></span><span class="refpurpose"> — get any cookie variables sent by the client.</span></dt><dt><span class="refentrytitle"><a href="#load_env">load_env</a></span><span class="refpurpose"> — get the request's environment variables.</span></dt><dt><span class="refentrytitle"><a href="#env">env</a></span><span class="refpurpose"> — Loads a single
+ "environmental variable" into a Tcl variable.</span></dt><dt><span class="refentrytitle"><a href="#include">include</a></span><span class="refpurpose"> — includes a file into the output stream without modification.</span></dt><dt><span class="refentrytitle"><a href="#parse">parse</a></span><span class="refpurpose"> — parses a Rivet template file.</span></dt><dt><span class="refentrytitle"><a href="#headers">headers</a></span><span class="refpurpose"> — set and parse HTTP headers.</span></dt><dt><span class="refentrytitle"><a href="#makeurl">makeurl</a></span><span class="refpurpose"> — construct url's based on hostname, port.</span></dt><dt><span class="refentrytitle"><a href="#cookie">cookie</a></span><span class="refpurpose"> — get and set cookies.</span></dt><dt><span class="refentrytitle"><a href="#clock_to_rfc">clock_to_rfc850_gmt</a></span><span class="refpurpose"> — create a rfc850 time from [clock seconds].</span></dt><dt><span cl
ass="refentrytitle"><a href="#html">html</a></span><span class="refpurpose"> — construct html tagged text.</span></dt><dt><span class="refentrytitle"><a href="#incr0">incr0</a></span><span class="refpurpose"> — increment a variable or set it to 1 if nonexistant.</span></dt><dt><span class="refentrytitle"><a href="#parray">parray</a></span><span class="refpurpose"> — Tcl's <span style="font-family:monospace"><span class="command"><strong>parray</strong></span></span> with html formatting.</span></dt><dt><span class="refentrytitle"><a href="#abort_page">abort_page</a></span><span class="refpurpose"> — Stops outputing data to web page, similar in
+ purpose to PHP's <span style="font-family:monospace"><span class="command"><strong>die</strong></span></span> command.</span></dt><dt><span class="refentrytitle"><a href="#no_body">no_body</a></span><span class="refpurpose"> — Prevents Rivet from sending any content.</span></dt><dt><span class="refentrytitle"><a href="#escape_string">escape_string</a></span><span class="refpurpose"> — convert a string into escaped characters.</span></dt><dt><span class="refentrytitle"><a href="#escape_sgml_chars">escape_sgml_chars</a></span><span class="refpurpose"> — escape special SGML characters in a string.</span></dt><dt><span class="refentrytitle"><a href="#escape_shell_command">escape_shell_command</a></span><span class="refpurpose"> — escape shell metacharacters in a string.</span></dt><dt><span class="refentrytitle"><a href="#unescape_string">unescape_string</a></span><span class="refpurpose"> — unescape escaped characters in a string.</span></dt><dt
><span class="refentrytitle"><a href="#apache_log_error">apache_log_error</a></span><span class="refpurpose"> — log messages to the Apache error log</span></dt><dt><span class="refentrytitle"><a href="#apache_table">apache_table</a></span><span class="refpurpose"> — access and manipulate Apache tables in the request structure.</span></dt></dl></dd><dt><span class="section"><a href="#examples">Examples and Usage</a></span></dt><dt><span class="section"><a href="#tcl_packages">Rivet Tcl Packages</a></span></dt><dt><span class="section"><a href="#dio">DIO - Database Interface Objects</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="#dio_package">DIO</a></span><span class="refpurpose"> — Database Interface Objects</span></dt></dl></dd><dt><span class="section"><a href="#diodisplay">DIODisplay - Database Interface Objects Display Class</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="#diodisplay_package">DIODisplay</a></span><span c
lass="refpurpose"> — Database Interface Objects Display Class</span></dt></dl></dd><dt><span class="section"><a href="#session_package">Session Package</a></span></dt><dd><dl><dt><span class="section"><a href="#id2737819">Introduction</a></span></dt><dt><span class="section"><a href="#requirements">Requirements</a></span></dt><dt><span class="section"><a href="#id2737834">Preparing To Use It</a></span></dt><dt><span class="section"><a href="#id2737883">Example Usage</a></span></dt><dt><span class="section"><a href="#id2737949">Using Sessions From Your Code</a></span></dt><dt><span class="section"><a href="#id2738157">Session Configuration Options</a></span></dt><dt><span class="section"><a href="#id2738412">Session Methods</a></span></dt><dt><span class="section"><a href="#id2738651">Getting Additional Randomness From The Entropy File</a></span></dt></dl></dd><dt><span class="section"><a href="#help">Resources - How to Get Help</a></span></dt><dd><dl><dt><span class="s
ection"><a href="#id2739697">Mailing Lists</a></span></dt><dt><span class="section"><a href="#id2739120">Newsgroup</a></span></dt><dt><span class="section"><a href="#websites">Web Sites</a></span></dt><dt><span class="section"><a href="#id2739774">Bug Tracking System</a></span></dt><dt><span class="section"><a href="#id2739792">IRC</a></span></dt><dt><span class="section"><a href="#id2739804">Editing Rivet Template Files</a></span></dt></dl></dd><dt><span class="section"><a href="#internals">Rivet Internals</a></span></dt><dd><dl><dt><span class="section"><a href="#id2739361">Initialization</a></span></dt><dt><span class="section"><a href="#id2740133">RivetChan</a></span></dt><dt><span class="section"><a href="#id2740160">The <span style="font-family:monospace"><span class="command"><strong>global</strong></span></span> Command</a></span></dt><dt><span class="section"><a href="#id2740212">Page Parsing, Execution and Caching</a></span></dt><dt><span class="section"><a href="#
id2740267">Debugging Rivet and Apache</a></span></dt></dl></dd><dt><span class="section"><a href="#upgrading">Upgrading from mod_dtcl or NeoWebScript</a></span></dt><dd><dl><dt><span class="section"><a href="#id2739656">mod_dtcl</a></span></dt><dt><span class="section"><a href="#id2739472">NeoWebScript</a></span></dt></dl></dd></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>1. <a href="#hello%20world">Hello World</a></dt><dt>2. <a href="#id2724750">Generate a Table</a></dt><dt>3. <a href="#variable_access">Variable Access</a></dt><dt>4. <a href="#file_upload">File Upload</a></dt><dt>5. <a href="#file_download">File Download</a></dt><dt>6. <a href="#ajax_xml_messaging">XML Messages and Ajax</a></dt></dl></div><p style="width:90%">
+ Document revision: $Revision: 790674 $, last modified 2010-04-12 11:20:04+02:00$ by $Author: mxmanghi $.
+ </p><div class="section" title="Introduction to Apache Rivet"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="introduction"></a>Introduction to Apache Rivet</h2></div></div></div><p style="width:90%">
Apache Rivet is a system for creating dynamic web content via a
programming language integrated with Apache Web Server. It is
designed to be fast, powerful and extensible, consume few system
@@ -23,23 +25,23 @@
something that needs improving, and have ideas or suggestions,
don't hesitate to let us know. If you want to contribute
directly, better yet!
- </p></div><div class="section" lang="en"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="installation"></a>Apache Rivet Installation</h2></div></div></div><div class="procedure"><ol type="1"><li><p class="title"><b>Check Dependencies</b></p><p style="width:90%">
+ </p></div><div class="section" title="Apache Rivet Installation"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="installation"></a>Apache Rivet Installation</h2></div></div></div><div class="procedure"><ol class="procedure" type="1"><li class="step" title="Check Dependencies"><p class="title"><b>Check Dependencies</b></p><p style="width:90%">
To install Rivet, you will need Tcl 8.4 or greater and
Apache 1.3.xx. It is known to run on Linux, FreeBSD,
OpenBSD, and Solaris and HPUX. Windows NT is also possible
- please see the directions in the distribution. Note that
Rivet does not currently work with Apache 2.
- </p></li><li><p class="title"><b>Get Rivet</b></p><p style="width:90%">
+ </p></li><li class="step" title="Get Rivet"><p class="title"><b>Get Rivet</b></p><p style="width:90%">
Download the sources at <a class="ulink" href="http://tcl.apache.org/rivet/download.html" target="_top">http://tcl.apache.org/rivet/download.html</a>. Currently
the only way to obtain Rivet. In the future, we hope to
have a FreeBSD port, Debian package, RPM's, and windows
binaries.
- </p></li><li><p class="title"><b>Install Tcl</b></p><p style="width:90%">
+ </p></li><li class="step" title="Install Tcl"><p class="title"><b>Install Tcl</b></p><p style="width:90%">
If you don't have Tcl already, you need it! If you already
have it, you should just be able to use your system Tcl as
long as it is recent. You can tell Rivet where Tcl is via
the -with-tclconfig option to
- <span style="font-family:monospace"><span class="command"><strong>configure.tcl</strong></span></span> (see below).</p></li><li><p class="title"><b>Get and Install Apache Sources</b></p><p style="width:90%">
+ <span style="font-family:monospace"><span class="command"><strong>configure.tcl</strong></span></span> (see below).</p></li><li class="step" title="Get and Install Apache Sources"><p class="title"><b>Get and Install Apache Sources</b></p><p style="width:90%">
Rivet needs some Apache include (.h) files in order to
build. The easiest way to get them is to download the
source code of the Apache web server, although some systems
@@ -57,7 +59,7 @@
</p><p style="width:90%">
The source code for the Apache web server may be found by
following the links here: <a class="ulink" href="http://httpd.apache.org/" target="_top">http://httpd.apache.org/</a>.
- </p></li><li><p class="title"><b>Uncompress Sources</b></p><p style="width:90%">
+ </p></li><li class="step" title="Uncompress Sources"><p class="title"><b>Uncompress Sources</b></p><p style="width:90%">
We will assume that you have Apache installed at this point.
You must uncompress the Rivet sources in the directory where you
wish to compile them.
@@ -65,7 +67,7 @@
</p><pre style="background:#ccc; margin: 2ex; margin-right: 10%; padding: 1ex; border: dashed black 1px ; white-space: pre; font-family: monospace; font-size: 90%;" class="programlisting">gunzip tcl-rivet-X.X.X.tar.gz
tar -xvf tcl-rivet-X.X.X.tar.gz</pre><p style="width:90%">
- </p></li><li><p class="title"><b>Building Rivet</b></p><ol type="a"><li><p style="width:90%">
+ </p></li><li class="step" title="Building Rivet"><p class="title"><b>Building Rivet</b></p><ol type="a" class="substeps"><li class="step" title="Step 6.a"><p style="width:90%">
On Linux or Unix systems, Rivet uses the standard
./configure ; make ; make install technique.
</p><p style="width:90%">
@@ -81,11 +83,11 @@ tar -xvf tcl-rivet-X.X.X.tar.gz</pre><p
</p><pre style="background:#ccc; margin: 2ex; margin-right: 10%; padding: 1ex; border: dashed black 1px ; white-space: pre; font-family: monospace; font-size: 90%;" class="programlisting">cd src/
./configure --with-tcl=/usr/lib/tcl8.4/ --with-tclsh=/usr/bin/tclsh8.4 \
--with-apxs=/usr/bin/apxs
-</pre></li><li><p class="title"><b>Run make</b></p><p style="width:90%">
+</pre></li><li class="step" title="Run make"><p class="title"><b>Run make</b></p><p style="width:90%">
At this point, you are ready to run make, which should
run to completion without any errors (a warning or two
is ok, generally).
- </p></li><li><p class="title"><b>Install</b></p><p style="width:90%">
+ </p></li><li class="step" title="Install"><p class="title"><b>Install</b></p><p style="width:90%">
Now, you are ready to run the <span style="font-family:monospace"><span class="command"><strong>make
install</strong></span></span> to install the resulting files.
This should copy the shared object (like
@@ -93,7 +95,7 @@ tar -xvf tcl-rivet-X.X.X.tar.gz</pre><p
successfully created, into Apache's
<code class="filename">libexec</code> directory, as well as
install some support scripts and various code.
- </p></li></ol></li><li><p class="title"><b>Apache Configuration Files</b></p><p style="width:90%">
+ </p></li></ol></li><li class="step" title="Apache Configuration Files"><p class="title"><b>Apache Configuration Files</b></p><p style="width:90%">
Rivet is relatively easy to configure - we start off by
adding the module itself:
</p><pre style="background:#ccc; margin: 2ex; margin-right: 10%; padding: 1ex; border: dashed black 1px ; white-space: pre; font-family: monospace; font-size: 90%;" class="programlisting">LoadModule rivet_module
@@ -119,7 +121,7 @@ AddType application/x-rivet-tcl .tcl</pr
directories. In that case, you would do the following:</p><pre style="background:#ccc; margin: 2ex; margin-right: 10%; padding: 1ex; border: dashed black 1px ; white-space: pre; font-family: monospace; font-size: 90%;" class="programlisting">DirectoryIndex index.html index.htm index.shtml index.cgi index.tcl index.rvt</pre><p style="width:90%">
For other directives that Rivet provides for Apache
configuration, please see <a class="xref" href="#directives" title="Rivet Apache Directives">the section called “Rivet Apache Directives”</a>.
- </p></li></ol></div></div><div class="section" lang="en"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="directives"></a>Rivet Apache Directives</h2></div></div></div><p style="width:90%">
+ </p></li></ol></div></div><div class="section" title="Rivet Apache Directives"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="directives"></a>Rivet Apache Directives</h2></div></div></div><p style="width:90%">
These directives are used within the Apache httpd server
configuration files to modify Apache Rivet's behavior. Their
precedence is as follows: <span style="font-family:monospace"><span class="command"><strong>RivetDirConf</strong></span></span>,
@@ -186,7 +188,7 @@ AddType application/x-rivet-tcl .tcl</pr
to put it in a GlobalInitScript
ChildInitScript when you are first
developing a web site.
- <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+ <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
This code is evaluated at the global level, not
inside the request namespace where pages are
evaluated.
@@ -263,7 +265,7 @@ AddType application/x-rivet-tcl .tcl</pr
<span style="font-family:monospace"><span class="command"><strong>RivetServerConf</strong></span></span>, except that they are
only valid for the directory where they are specified, and
its subdirectories.
- </div></div></dd></dl></div></div><div class="section" lang="en"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="commands"></a>Rivet Tcl Commands and Variables</h2></div></div></div><div class="refentry" lang="en"><a name="var"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>var, var_qs, var_post — get the value of a form variable.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">var</span> (<span style="font-family:monospace; font-weight: bold;">get</span> | <span style="font-family:monospace; font-weight: bold;">list</span> | <span style="font-family:monospace; font-weight: bold;">exists</span> | <span style="font-family:monospace; font-weight: bold;">number</span> | <span style="font-family:monospace;
font-weight: bold;">all</span>)</div></div><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">var_qs</span> (<span style="font-family:monospace; font-weight: bold;">get</span> | <span style="font-family:monospace; font-weight: bold;">list</span> | <span style="font-family:monospace; font-weight: bold;">exists</span> | <span style="font-family:monospace; font-weight: bold;">number</span> | <span style="font-family:monospace; font-weight: bold;">all</span>)</div></div><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">var_post</span> (<span style="font-family:monospace; font-weight: bold;">get</span> | <span style="font-family:monospace; font-weight: bold;">list</span> | <span styl
e="font-family:monospace; font-weight: bold;">exists</span> | <span style="font-family:monospace; font-weight: bold;">number</span> | <span style="font-family:monospace; font-weight: bold;">all</span>)</div></div></div><div class="refsect1" lang="en"><a name="id2961604"></a><h2>Description</h2><p style="width:90%">
+ </div></div></dd></dl></div></div><div class="section" title="Rivet Tcl Commands and Variables"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="commands"></a>Rivet Tcl Commands and Variables</h2></div></div></div><div class="refentry" title="var"><a name="var"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>var, var_qs, var_post — get the value of a form variable.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">var</span> (<span style="font-family:monospace; font-weight: bold;">get</span> | <span style="font-family:monospace; font-weight: bold;">list</span> | <span style="font-family:monospace; font-weight: bold;">exists</span> | <span style="font-family:monospace; font-weight: bold;">n
umber</span> | <span style="font-family:monospace; font-weight: bold;">all</span>)</div></div><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">var_qs</span> (<span style="font-family:monospace; font-weight: bold;">get</span> | <span style="font-family:monospace; font-weight: bold;">list</span> | <span style="font-family:monospace; font-weight: bold;">exists</span> | <span style="font-family:monospace; font-weight: bold;">number</span> | <span style="font-family:monospace; font-weight: bold;">all</span>)</div></div><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">var_post</span> (<span style="font-family:monospace; font-weight: bold;">get</span> | <span style="font-family:monos
pace; font-weight: bold;">list</span> | <span style="font-family:monospace; font-weight: bold;">exists</span> | <span style="font-family:monospace; font-weight: bold;">number</span> | <span style="font-family:monospace; font-weight: bold;">all</span>)</div></div></div><div class="refsect1" title="Description"><a name="id2718641"></a><h2>Description</h2><p style="width:90%">
The <span style="font-family:monospace"><span class="command"><strong>var</strong></span></span> command retrieves information
about GET or POST variables sent to the script via client
request. It treats both GET and POST variables the same,
@@ -306,7 +308,7 @@ AddType application/x-rivet-tcl .tcl</pr
Return a list of variable names and values.
</div></div></dd></dl></div><p style="width:90%">
See <a class="xref" href="#variable_access" title="Example 3. Variable Access">Example 3, “Variable Access”</a>.
- </p></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="upload"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>upload — handle a file uploaded by a client.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">upload</span> (<span style="font-family:monospace; font-weight: bold;">channel</span> | <span style="font-family:monospace; font-weight: bold;">save</span> | <span style="font-family:monospace; font-weight: bold;">data</span> | <span style="font-family:monospace; font-weight: bold;">exists</span> | <span style="font-family:monospace; font-weight: bold;">size</span> | <span style="font-family:monospace; font-weight: bold;">type</span> | <span style="font-family:monospace; font-weight: bold;">filena
me</span>)</div></div></div><div class="refsect1" lang="en"><a name="id2961955"></a><h2>Description</h2><p style="width:90%">The upload command is for file upload manipulation.
+ </p></div></div><div class="refentry" title="upload"><div class="refentry.separator"><hr></div><a name="upload"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>upload — handle a file uploaded by a client.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">upload</span> (<span style="font-family:monospace; font-weight: bold;">channel</span> | <span style="font-family:monospace; font-weight: bold;">save</span> | <span style="font-family:monospace; font-weight: bold;">data</span> | <span style="font-family:monospace; font-weight: bold;">exists</span> | <span style="font-family:monospace; font-weight: bold;">size</span> | <span style="font-family:monospace; font-weight: bold;">type</span> | <span style="font-family:monospace; font
-weight: bold;">filename</span>)</div></div></div><div class="refsect1" title="Description"><a name="id2718991"></a><h2>Description</h2><p style="width:90%">The upload command is for file upload manipulation.
See the relevant Apache Directives to further configure the
behavior of this Rivet feature.
</p><div class="variablelist"><dl><dt><span class="term">
@@ -360,7 +362,7 @@ AddType application/x-rivet-tcl .tcl</pr
uploaded.
</div></div></dd></dl></div><p style="width:90%">
See <a class="xref" href="#upload" title="upload">upload</a>.
- </p></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="load_response"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>load_response — load form variables into an array.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">load_response</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arrayName</code></em></span>?</div></div></div><div class="refsect1" lang="en"><a name="id2962392"></a><h2>Description</h2>
+ </p></div></div><div class="refentry" title="load_response"><div class="refentry.separator"><hr></div><a name="load_response"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>load_response — load form variables into an array.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">load_response</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arrayName</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="id2719429"></a><h2>Description</h2>
Load any form variables passed to this page into an
array. If <span style="font-family:monospace"><span class="command"><strong>load_response</strong></span></span> is called without
arguments the array response is created in
@@ -377,15 +379,15 @@ AddType application/x-rivet-tcl .tcl</pr
array results in adding more values to the array at every call.
When needed it is left to the caller to empty the array between
two subsequent calls.
- </div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="load_headers"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>load_headers — get client request's headers.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">load_headers</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>array_name</code></em></span>?</div></div></div><div class="refsect1" lang="en"><a name="id2962470"></a><h2>Description</h2><p style="width:90%">
+ </div></div><div class="refentry" title="load_headers"><div class="refentry.separator"><hr></div><a name="load_headers"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>load_headers — get client request's headers.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">load_headers</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>array_name</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="id2719506"></a><h2>Description</h2><p style="width:90%">
Load the headers that come from a client request into the
provided array name, or use headers if no
name is provided.
- </p></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="load_cookies"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>load_cookies — get any cookie variables sent by the client.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">load_cookies</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>array_name</code></em></span>?</div></div></div><div class="refsect1" lang="en"><a name="id2962523"></a><h2>Description</h2></div><p style="width:90%">
+ </p></div></div><div class="refentry" title="load_cookies"><div class="refentry.separator"><hr></div><a name="load_cookies"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>load_cookies — get any cookie variables sent by the client.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">load_cookies</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>array_name</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="id2719559"></a><h2>Description</h2></div><p style="width:90%">
Load the array of cookie variables into the specified
array name. Uses array cookies by
default.
- </p></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="load_env"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>load_env — get the request's environment variables.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">load_env</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>array_name</code></em></span>?</div></div></div><div class="refsect1" lang="en"><a name="id2962574"></a><h2>Description</h2><p style="width:90%">
+ </p></div><div class="refentry" title="load_env"><div class="refentry.separator"><hr></div><a name="load_env"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>load_env — get the request's environment variables.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">load_env</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>array_name</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="id2719611"></a><h2>Description</h2><p style="width:90%">
Load the array of environment variables into the specified
array name. Uses array ::request::env by
default.
@@ -394,20 +396,20 @@ AddType application/x-rivet-tcl .tcl</pr
namespace, it isn't necessary to qualify the array name
for most uses - it's ok to access it as
env.
- </p></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="env"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>env — Loads a single
- "environmental variable" into a Tcl variable.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">env</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>varName</code></em></span>?</div></div></div><div class="refsect1" lang="en"><a name="id2962639"></a><h2>Description</h2><p style="width:90%">
+ </p></div></div><div class="refentry" title="env"><div class="refentry.separator"><hr></div><a name="env"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>env — Loads a single
+ "environmental variable" into a Tcl variable.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">env</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>varName</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="id2719675"></a><h2>Description</h2><p style="width:90%">
If it is only necessary to load one environmental variable,
this command may be used to avoid the overhead of loading
and storing the entire array.
- </p></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="include"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>include — includes a file into the output stream without modification.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">include</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>filename_name</code></em></span>?</div></div></div><div class="refsect1" lang="en"><a name="id2962689"></a><h2>Description</h2><p style="width:90%">
+ </p></div></div><div class="refentry" title="include"><div class="refentry.separator"><hr></div><a name="include"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>include — includes a file into the output stream without modification.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">include</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>filename_name</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="id2719725"></a><h2>Description</h2><p style="width:90%">
Include a file without parsing it for processing tags <?
and ?>. This is the best way to include an HTML file or
any other static content.
- </p></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="parse"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>parse — parses a Rivet template file.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">parse</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>filename</code></em></span>?</div></div></div><div class="refsect1" lang="en"><a name="id2962743"></a><h2>Description</h2><p style="width:90%">
+ </p></div></div><div class="refentry" title="parse"><div class="refentry.separator"><hr></div><a name="parse"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>parse — parses a Rivet template file.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">parse</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>filename</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="id2719779"></a><h2>Description</h2><p style="width:90%">
Like the Tcl <span style="font-family:monospace"><span class="command"><strong>source</strong></span></span> command, but also
parses for Rivet <? and ?> processing tags. Using
this command, you can use one .rvt file from another.
- </p></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="headers"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>headers — set and parse HTTP headers.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">headers</span> (<span style="font-family:monospace; font-weight: bold;">set</span> | <span style="font-family:monospace; font-weight: bold;">redirect</span> | <span style="font-family:monospace; font-weight: bold;">add</span> | <span style="font-family:monospace; font-weight: bold;">type</span> | <span style="font-family:monospace; font-weight: bold;">numeric</span>)</div></div></div><div class="refsect1" lang="en"><a name="id2962835"></a><h2>Description</h2><p style="width:90%">
+ </p></div></div><div class="refentry" title="headers"><div class="refentry.separator"><hr></div><a name="headers"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>headers — set and parse HTTP headers.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">headers</span> (<span style="font-family:monospace; font-weight: bold;">set</span> | <span style="font-family:monospace; font-weight: bold;">redirect</span> | <span style="font-family:monospace; font-weight: bold;">add</span> | <span style="font-family:monospace; font-weight: bold;">type</span> | <span style="font-family:monospace; font-weight: bold;">numeric</span>)</div></div></div><div class="refsect1" title="Description"><a name="id2719871"></a><h2>Description</h2><p style="wi
dth:90%">
The <span style="font-family:monospace"><span class="command"><strong>headers</strong></span></span> command is for setting and
parsing HTTP headers.
</p><div class="variablelist"><dl><dt><span class="term"><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">headers</span> <span style="font-family:monospace; font-weight: bold;">set</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>headername</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
@@ -431,48 +433,48 @@ AddType application/x-rivet-tcl .tcl</pr
</div></div></dd><dt><span class="term">
<div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">headers</span> <span style="font-family:monospace; font-weight: bold;">numeric</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>response code</code></em></span>?</div></div>
</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">Set a numeric response code, such as 200, 404 or 500.
- </div></div></dd></dl></div></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="makeurl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>makeurl — construct url's based on hostname, port.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">makeurl</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>filename</code></em></span>?</div></div></div><div class="refsect1" lang="en"><a name="id2963115"></a><h2>Description</h2><p style="width:90%">
+ </div></div></dd></dl></div></div></div><div class="refentry" title="makeurl"><div class="refentry.separator"><hr></div><a name="makeurl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>makeurl — construct url's based on hostname, port.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">makeurl</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>filename</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="id2720152"></a><h2>Description</h2><p style="width:90%">
Create a self referencing URL from a filename. For example:
</p><pre style="background:#ccc; margin: 2ex; margin-right: 10%; padding: 1ex; border: dashed black 1px ; white-space: pre; font-family: monospace; font-size: 90%;" class="programlisting">makeurl /tclp.gif</pre><p style="width:90%">
returns
<code class="computeroutput">http://[hostname]:[port]/tclp.gif</code>.
where hostname and port are the hostname and port of the
server in question.
- </p></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="cookie"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>cookie — get and set cookies.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">cookie</span> ?<span style="font-family:monospace; font-weight: bold;">set</span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>cookieName</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>?<span class="optional">cookiValue</span>?</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-days <em class="replaceable"><code>expireInDays</code></em></span>? ?<span style="font-family:monospace; fon
t-weight: bold;">-hours <em class="replaceable"><code>expireInHours</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-minutes <em class="replaceable"><code>expireInMinutes</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-expires <em class="replaceable"><code>Wdy, DD-Mon-YYYY HH:MM:SS GMT</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-path <em class="replaceable"><code>uriPathCookieAppliesTo</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-secure <em class="replaceable"><code>1/0</code></em></span>?</div></div><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">cookie</span> ?<span style="font-family:monospace; font-weight: bold;">get</span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="repla
ceable"><code>cookieName</code></em></span>?</div></div></div><div class="refsect1" lang="en"><a name="id2963275"></a><h2>Description</h2><p style="width:90%">
+ </p></div></div><div class="refentry" title="cookie"><div class="refentry.separator"><hr></div><a name="cookie"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>cookie — get and set cookies.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">cookie</span> ?<span style="font-family:monospace; font-weight: bold;">set</span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>cookieName</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>?<span class="optional">cookiValue</span>?</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-days <em class="replaceable"><code>expireInDays</code></em></span>? ?<span style="font
-family:monospace; font-weight: bold;">-hours <em class="replaceable"><code>expireInHours</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-minutes <em class="replaceable"><code>expireInMinutes</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-expires <em class="replaceable"><code>Wdy, DD-Mon-YYYY HH:MM:SS GMT</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-path <em class="replaceable"><code>uriPathCookieAppliesTo</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;">-secure <em class="replaceable"><code>1/0</code></em></span>?</div></div><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">cookie</span> ?<span style="font-family:monospace; font-weight: bold;">get</span>? ?<span style="font-family:monospace; font-weight: b
old;"><em class="replaceable"><code>cookieName</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="id2720311"></a><h2>Description</h2><p style="width:90%">
<span style="font-family:monospace"><span class="command"><strong>cookie</strong></span></span> gets or sets a cookie. When you
get a cookie, the command returns the value of the cookie,
or an empty string if no cookie exists.
- </p></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="clock_to_rfc"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>clock_to_rfc850_gmt — create a rfc850 time from [clock seconds].</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">clock_to_rfc850_gmt</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>seconds</code></em></span>?</div></div></div><div class="refsect1" lang="en"><a name="id2963329"></a><h2>Description</h2><p style="width:90%">
+ </p></div></div><div class="refentry" title="clock_to_rfc850_gmt"><div class="refentry.separator"><hr></div><a name="clock_to_rfc"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>clock_to_rfc850_gmt — create a rfc850 time from [clock seconds].</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">clock_to_rfc850_gmt</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>seconds</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="id2720366"></a><h2>Description</h2><p style="width:90%">
Convert an integer-seconds-since-1970 click value to
RFC850 format, with the additional requirement that it be
GMT only.
- </p></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="html"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>html — construct html tagged text.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">html</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>string</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arg</code></em></span>...?</div></div></div><div class="refsect1" lang="en"><a name="id2963386"></a><h2>Description</h2><p style="width:90%">
+ </p></div></div><div class="refentry" title="html"><div class="refentry.separator"><hr></div><a name="html"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>html — construct html tagged text.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">html</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>string</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arg</code></em></span>...?</div></div></div><div class="refsect1" title="Description"><a name="id2720423"></a><h2>Description</h2><p style="width:90%">
Print text with the added ability to pass HTML tags
following the string. Example:
</p><pre style="background:#ccc; margin: 2ex; margin-right: 10%; padding: 1ex; border: dashed black 1px ; white-space: pre; font-family: monospace; font-size: 90%;" class="programlisting">html "Test" b i</pre><p style="width:90%">
produces: <code class="computeroutput"><b><i>Test</i></b></code>
- </p></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="incr0"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>incr0 — increment a variable or set it to 1 if nonexistant.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">incr0</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>varname</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>num</code></em></span>?</div></div></div><div class="refsect1" lang="en"><a name="id2963455"></a><h2>Description</h2><p style="width:90%">
+ </p></div></div><div class="refentry" title="incr0"><div class="refentry.separator"><hr></div><a name="incr0"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>incr0 — increment a variable or set it to 1 if nonexistant.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">incr0</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>varname</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>num</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="id2720491"></a><h2>Description</h2><p style="width:90%">
Increment a variable
<em class="replaceable"><code>varname</code></em> by
<em class="replaceable"><code>num</code></em>. If the
variable doesn't exist, create it instead of returning an
error.
- </p></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="parray"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>parray — Tcl's <span style="font-family:monospace"><span class="command"><strong>parray</strong></span></span> with html formatting.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">parray</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arrayName</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>?<span class="optional">pattern</span>?</code></em></span>?</div></div></div><div class="refsect1" lang="en"><a name="id2963526"></a><h2>Description</h2><p style="width:90%">
+ </p></div></div><div class="refentry" title="parray"><div class="refentry.separator"><hr></div><a name="parray"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>parray — Tcl's <span style="font-family:monospace"><span class="command"><strong>parray</strong></span></span> with html formatting.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">parray</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>arrayName</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>?<span class="optional">pattern</span>?</code></em></span>?</div></div></div><div class="refsect1" title="Description"><a name="id2720562"></a><h2>Description</h2><p style="w
idth:90%">
An html version of the standard Tcl
<span style="font-family:monospace"><span class="command"><strong>parray</strong></span></span> command. Displays the entire
contents of an array in a sorted, nicely-formatted way.
Mostly used for debugging purposes.
- </p></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="abort_page"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>abort_page — Stops outputing data to web page, similar in
- purpose to PHP's <span style="font-family:monospace"><span class="command"><strong>die</strong></span></span> command.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">abort_page</span> </div></div></div><div class="refsect1" lang="en"><a name="id2963579"></a><h2>Description</h2><p style="width:90%">This command flushes the
+ </p></div></div><div class="refentry" title="abort_page"><div class="refentry.separator"><hr></div><a name="abort_page"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>abort_page — Stops outputing data to web page, similar in
+ purpose to PHP's <span style="font-family:monospace"><span class="command"><strong>die</strong></span></span> command.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">abort_page</span> </div></div></div><div class="refsect1" title="Description"><a name="id2720615"></a><h2>Description</h2><p style="width:90%">This command flushes the
output buffer and stops the Tcl script from sending any more
data to the client. A normal Tcl script might use the
<span style="font-family:monospace"><span class="command"><strong>exit</strong></span></span> command, but that cannot be used in
Rivet without actually exiting the apache child
- process!</p></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="no_body"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>no_body — Prevents Rivet from sending any content.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">no_body</span> </div></div></div><div class="refsect1" lang="en"><a name="id2963627"></a><h2>Description</h2><p style="width:90%">
+ process!</p></div></div><div class="refentry" title="no_body"><div class="refentry.separator"><hr></div><a name="no_body"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>no_body — Prevents Rivet from sending any content.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">no_body</span> </div></div></div><div class="refsect1" title="Description"><a name="id2720663"></a><h2>Description</h2><p style="width:90%">
This command is useful for situations where it is necessary
to only return HTTP headers and no actual content. For
instance, when returning a 304 redirect.
- </p></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="escape_string"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>escape_string — convert a string into escaped characters.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">escape_string</span> ?<span style="font-family:monospace; font-weight: bold;">string</span>?</div></div></div><div class="refsect1" lang="en"><a name="id2963676"></a><h2>Description</h2><p style="width:90%">
+ </p></div></div><div class="refentry" title="escape_string"><div class="refentry.separator"><hr></div><a name="escape_string"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>escape_string — convert a string into escaped characters.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">escape_string</span> ?<span style="font-family:monospace; font-weight: bold;">string</span>?</div></div></div><div class="refsect1" title="Description"><a name="id2720712"></a><h2>Description</h2><p style="width:90%">
Scans through each character in the specified string looking
for special characters, escaping them as needed, mapping
special characters to a quoted hexadecimal equivalent,
@@ -480,17 +482,17 @@ AddType application/x-rivet-tcl .tcl</pr
</p><p style="width:90%">
This is useful for quoting strings that are going to be
part of a URL.
- </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+ </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
You must require the Rivet package in order to gain access to this command
- </td></tr></table></div></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="escape_sgml_chars"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>escape_sgml_chars — escape special SGML characters in a string.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">escape_sgml_chars</span> ?<span style="font-family:monospace; font-weight: bold;">string</span>?</div></div></div><div class="refsect1" lang="en"><a name="id2963735"></a><h2>Description</h2><p style="width:90%">
+ </td></tr></table></div></div></div><div class="refentry" title="escape_sgml_chars"><div class="refentry.separator"><hr></div><a name="escape_sgml_chars"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>escape_sgml_chars — escape special SGML characters in a string.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">escape_sgml_chars</span> ?<span style="font-family:monospace; font-weight: bold;">string</span>?</div></div></div><div class="refsect1" title="Description"><a name="id2720771"></a><h2>Description</h2><p style="width:90%">
Scans through each character in the specified string looking
for any special (with respect to SGML, and hence HTML) characters
from the specified string, and returns the result.
For example, the right angle
bracket is escaped to the corrected ampersand gt symbol.
- </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+ </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
You must require the Rivet package in order to gain access to this command
- </td></tr></table></div></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="escape_shell_command"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>escape_shell_command — escape shell metacharacters in a string.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">escape_shell_command</span> ?<span style="font-family:monospace; font-weight: bold;">string</span>?</div></div></div><div class="refsect1" lang="en"><a name="id2963790"></a><h2>Description</h2><p style="width:90%">
+ </td></tr></table></div></div></div><div class="refentry" title="escape_shell_command"><div class="refentry.separator"><hr></div><a name="escape_shell_command"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>escape_shell_command — escape shell metacharacters in a string.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">escape_shell_command</span> ?<span style="font-family:monospace; font-weight: bold;">string</span>?</div></div></div><div class="refsect1" title="Description"><a name="id2720827"></a><h2>Description</h2><p style="width:90%">
Scans through each character in the specified string looking
for any shell metacharacters, such as asterisk, less than and
greater than, parens, square brackets, curly brackets, angle
@@ -499,9 +501,9 @@ AddType application/x-rivet-tcl .tcl</pr
</p><p style="width:90%">
For each metacharacter found, it is quoted in the result by
prepending it with a backslash, returning the result.
- </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+ </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
You must require the Rivet package in order to gain access to this command
- </td></tr></table></div></div></div><div class="refentry" lang="en"><div class="refentry.separator"><hr></div><a name="unescape_string"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>unescape_string — unescape escaped characters in a string.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">unescape_string</span> ?<span style="font-family:monospace; font-weight: bold;">string</span>?</div></div></div><div class="refsect1" lang="en"><a name="id2963851"></a><h2>Description</h2><p style="width:90%">
+ </td></tr></table></div></div></div><div class="refentry" title="unescape_string"><div class="refentry.separator"><hr></div><a name="unescape_string"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>unescape_string — unescape escaped characters in a string.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">unescape_string</span> ?<span style="font-family:monospace; font-weight: bold;">string</span>?</div></div></div><div class="refsect1" title="Description"><a name="id2720888"></a><h2>Description</h2><p style="width:90%">
Scans through each character in the specified string looking
for escaped character sequences (characters containing a
percent sign and two hexadecimal characters, unescaping them
@@ -510,9 +512,85 @@ AddType application/x-rivet-tcl .tcl</pr
</p><p style="width:90%">
This is useful for unquoting strings that have been quoted to
be part of a URL.
- </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
+ </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
You must require the Rivet package in order to gain access to this command
- </td></tr></table></div></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="examples"></a>Examples and Usage</h2></div></div></div><p style="width:90%">
+ </td></tr></table></div></div></div><div class="refentry" title="apache_log_error"><div class="refentry.separator"><hr></div><a name="apache_log_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>apache_log_error — log messages to the Apache error log</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">apache_log_error</span> ?<span style="font-family:monospace; font-weight: bold;">priority</span>? ?<span style="font-family:monospace; font-weight: bold;">message</span>?</div></div></div><div class="refsect1" title="Description"><a name="id2720956"></a><h2>Description</h2><p style="width:90%">The apache_log_error command logs a message to the
+ Apache error log, whose name and location have been
+ set by the ErrorLog directive.
+ </p><p style="width:90%">
+ Priority must be one of
+ debug,
+ info,
+ notice,
+ warning,
+ err,
+ crit,
+ alert, or
+ emerg.
+ </p></div></div><div class="refentry" title="apache_table"><div class="refentry.separator"><hr></div><a name="apache_table"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>apache_table — access and manipulate Apache tables in the request structure.</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">apache_table</span> (<span style="font-family:monospace; font-weight: bold;">get</span> | <span style="font-family:monospace; font-weight: bold;">set</span> | <span style="font-family:monospace; font-weight: bold;">exists</span> | <span style="font-family:monospace; font-weight: bold;">unset</span> | <span style="font-family:monospace; font-weight: bold;">names</span> | <span style="font-family:monospace; font-weight: bold;">array_g
et</span> | <span style="font-family:monospace; font-weight: bold;">clear</span>)</div></div></div><div class="refsect1" title="Description"><a name="id2721088"></a><h2>Description</h2><p style="width:90%">The apache_table command is for accessing and manipulating
+ Apache tables in the request structure.
+ </p><p style="width:90%">
+ The table name must be one of
+ notes,
+ headers_in,
+ headers_out,
+ err_headers_out, or
+ subprocess_env.
+ </p><div class="variablelist"><dl><dt><span class="term">
+ <div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">apache_table</span> <span style="font-family:monospace; font-weight: bold;">get</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>key</code></em></span>?</div></div>
+ </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+ When given the name of an Apache table
+ <em class="replaceable"><code>tablename</code></em>
+ and the name of a key
+ <em class="replaceable"><code>tablename</code></em>,
+ returns the value of the key in the table, or an empty
+ string.
+ </div></div></dd><dt><span class="term">
+ <div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">apache_table</span> <span style="font-family:monospace; font-weight: bold;">set</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>key</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>value</code></em></span>?</div></div>
+ <div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">apache_table</span> <span style="font-family:monospace; font-weight: bold;">set</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>list</code></em></span>?</div></div>
+ </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+ Stores the
+ <em class="replaceable"><code>value</code></em> in
+ the table
+ <em class="replaceable"><code>tablename</code></em>
+ under the key
+ <em class="replaceable"><code>key</code></em>.
+ </div><div style="margin-bottom:1.5ex ; padding .5ex">
+ For the list form,
+ <em class="replaceable"><code>list</code></em> contains
+ a list of zero or more pairs of key-value pairs to be
+ set into the table
+ <em class="replaceable"><code>tablename</code></em>.
+ </div></div></dd><dt><span class="term">
+ <div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">apache_table</span> <span style="font-family:monospace; font-weight: bold;">exists</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>key</code></em></span>?</div></div>
+ </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+ Returns 1 if the specified key,
+ <em class="replaceable"><code>key</code></em>,
+ exists in table
+ <em class="replaceable"><code>tablename</code></em>,
+ else 0.
+ </div></div></dd><dt><span class="term">
+ <div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">apache_table</span> <span style="font-family:monospace; font-weight: bold;">unset</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>? ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>key</code></em></span>?</div></div>
+ </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+ Removes the key-value pair referenced by
+ <em class="replaceable"><code>key</code></em>
+ from the table
+ <em class="replaceable"><code>tablename</code></em>.
+ </div></div></dd><dt><span class="term">
+ <div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">apache_table</span> <span style="font-family:monospace; font-weight: bold;">names</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>?</div></div>
+ </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+ Returns a list of all of the keys present in the table
+ <em class="replaceable"><code>tablename</code></em>.
+ </div></div></dd><dt><span class="term">
+ <div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">apache_table</span> <span style="font-family:monospace; font-weight: bold;">array_get</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>?</div></div>
+ </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+ Returns a list of key-value pairs from the table
+ <em class="replaceable"><code>tablename</code></em>.
+ </div></div></dd><dt><span class="term">
+ <div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">apache_table</span> <span style="font-family:monospace; font-weight: bold;">clear</span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>tablename</code></em></span>?</div></div>
+ </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
+ Clears the contents of the specified table.
+ </div></div></dd></dl></div></div></div></div><div class="section" title="Examples and Usage"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="examples"></a>Examples and Usage</h2></div></div></div><p style="width:90%">
Some examples of Rivet usage follow. Some prior Tcl knowledge
is assumed. If you don't know much Tcl, don't worry, it's easy,
and there are some good resources available on the web that will
@@ -530,7 +608,7 @@ puts "Hello World"
If you then access it with your browser, you should see a
blank page with the text "Hello World" (without the quotes) on
it.
- </p></div></div><br class="example-break"><div class="example"><a name="id2967095"></a><p class="title"><b>Example 2. Generate a Table</b></p><div class="example-contents"><p style="width:90%">
+ </p></div></div><br class="example-break"><div class="example"><a name="id2724750"></a><p class="title"><b>Example 2. Generate a Table</b></p><div class="example-contents"><p style="width:90%">
In another simple example, we dynamically generate a table:
</p><pre style="background:#ccc; margin: 2ex; margin-right: 10%; padding: 1ex; border: dashed black 1px ; white-space: pre; font-family: monospace; font-size: 90%;" class="programlisting"><? puts "<table>\n"
for {set i 1} { $i <= 8 } {incr i} {
@@ -954,13 +1032,13 @@ if {[var exists load]} {
by your apache server and pointing your browser to the rivetService.html page you should see a page with a
drop-down list. Every time a different name is picked from the list a new query is sent and logged in the
apache access.log file, even though the html is never reloaded.
- </p></div></div><br class="example-break"></div><div class="section" lang="en"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="tcl_packages"></a>Rivet Tcl Packages</h2></div></div></div><p style="width:90%">
+ </p></div></div><br class="example-break"></div><div class="section" title="Rivet Tcl Packages"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="tcl_packages"></a>Rivet Tcl Packages</h2></div></div></div><p style="width:90%">
In addition to the core Apache module, Rivet provides a number
of Tcl packages that include potentially useful code.
- </p><div class="itemizedlist"><ul type="disc"><li><div style="margin-bottom:1.5ex ; padding .5ex">commserver is a package providing a server that can be
+ </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">commserver is a package providing a server that can be
used for IPC. Still experimental. Requires the comm package
- from tcllib.</div></li><li><div style="margin-bottom:1.5ex ; padding .5ex">dio is a database abstraction layer.</div></li><li><div style="margin-bottom:1.5ex ; padding .5ex">dtcl is a compatibility package for mod_dtcl
- applications.</div></li><li><div style="margin-bottom:1.5ex ; padding .5ex">form - for creating forms.</div></li><li><div style="margin-bottom:1.5ex ; padding .5ex">rivet - some additional, useful routines.</div></li><li><div style="margin-bottom:1.5ex ; padding .5ex">tclrivet</div></li></ul></div></div><div class="section" lang="en"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="dio"></a>DIO - Database Interface Objects</h2></div></div></div><div class="refentry" lang="en"><a name="dio_package"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>DIO — Database Interface Objects</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis" style="width:80%"><div style="background:#ccccff ; margin:1ex ; padding:.4ex; padding-left: 0.8ex; word-spacing:1ex "><span style="font-weight:bold ; font-family:monospace">::DIO::handle</span> <span style="font-family:monospace; font-weight: bold;"><em c
lass="replaceable"><code>interface</code></em></span> ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>objectName</code></em></span>? (<span style="font-family:monospace; font-weight: bold;">-option</span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>option</code></em></span> | <span style="font-family:monospace; font-weight: bold;">-option</span> | <span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>option</code></em></span> | <span style="font-family:monospace; font-weight: bold;">...</span>)</div></div></div><div class="refsect1" lang="en"><a name="id2967598"></a><h2>Description</h2><p style="width:90%">
+ from tcllib.</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">dio is a database abstraction layer.</div></li><li class="listitem"><div style="margin-bottom:1.5ex ; padding .5ex">dtcl is a compatibility package for mod_dtcl
[... 284 lines stripped ...]
---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-cvs-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-cvs-help@tcl.apache.org