Mount Holyoke College
Directories
Login
Calendar
Campus Map
About | Admission | Academics | Student life | Athletics | Offices | Giving | News & Events
Web-Based Forms
Submission sent via email
Database Forms
Submission sent to database


Home > The Web at MHC > Using formdb: HTML Forms

Using formdb: HTML Forms

What is formdb?
formdb is a special program which takes a user's input from a Web page and generates a text file suitable for import into a database or spreadsheet program.

How do I use it?

  1. You create an HTML form that contains certain special input fields that tell formdb what to do.
  2. You tell your form to call formdb when the user submits the information.
  3. Formdb appends the contents of the submitted form onto a text file. Important: You must submit a Requesting a formdb Data File form to request that the data file be created for you.
  4. When you want to retrieve the data, you run a special command which copies the data file to your MHC Home Directory. The details of how to use this command are sent to you when the data file is created.
  5. You then connect to your MHC Home Directory and analyze the data file, usually by importing it into a spreadsheet or database program.
HTML Code
The Form Creation Wizard is a good way to create the necessary hidden fields, without having to know too much about HTML code. It asks you a series of questions and generates code that you can copy and paste into your web page.

If you need assistance with creating FORMs with HTML, email the Webmaster .

Formdb is invoked as the ACTION for your form in the standard way:

<form method=post action="/cgi/formdb">.

Note that formdb requires that you use the POST method. All of the information passed to formdb is passed as input fields. You have complete discretion as to the method of creating the information: You may submit the information yourself as hidden elements, or you can have the user enter information.

Required Fields
Certain fields are required for formdb to function properly. If a form is submitted to formdb without one of these fields, it generates an error message and displays it to the user. No information will be appended to the data file.

Field Name What It Does
field_order

Use this field to tell formdb what fields, and in what order, should be appended to the data file. Only those fields that appear in this list will be added to the data file.

The value of field_order should be a space-separated list of field names. You may use any valid field name, whether it is a standard field or one of your own.

For example:
<input type=hidden name="field_order"
value="from_name from_address city state">
.

Three special field names can also be used. To add the current date and time to the data file record, use _date_time. A date and timestamp in the format Tue Oct 7 04:56:46 EDT 2008will be added at the appropriate location.

To determine the origin of the user submitting the form, you can use either
_IPAddress to insert the raw IP address of the user, or
_campus, which inserts an M for MHC users, an F for Five College users, or an O for all others.

Additional Fields
You can add any additional fields that you like to contain the information in your form. Be sure to assign each item its own name (with the exception of radio buttons, which are grouped under the same name). You can have formdb output the contents of any or all of these extra fields by specifying them in the field_order parameter. The following list consists of optional fields that you can use to control formdb's behavior.

Field Name What It Does
db_field_sep

This field controls the separator which appears between each value in the data file. These three types are currently defined:

colon:
Values in the format value1:value2:value3.
If a value contains a colon, the entire value is enclosed in "double-quotes".
comma:
Values in the format value1,value2,value3.
If a value itself contains a comma, it is enclosed in "double-quotes". If a value itself contains one or more double-quotes, then the whole thing is double-quoted and the enclosed double-quotes are themselves doubled. So, for instance, the values:

Testing
He said, "Hello" to me
1, 2, 3

are represented as the record:
Testing,"He said, ""Hello"" to me","1, 2, 3"

This is the format understood by most spreadsheet programs as "Comma separated values" or CSV.
If no db_field_sep value is specified, this format is used by default.

tab:
Values in the format value1<tab>value2<tab>value3,
where <tab> is ASCII character #9.
If a value contains a tab character, the entire value is enclosed in "double-quotes".

Example:
<input type=hidden name=db_field_sep value=comma>

db_rec_sep

This field controls the value that is written after each record in the data file. Currently, the values that are accepted are: mac, pc, and unix. Each of these three values outputs an end-of-line marker that is compatible with the named operating system.

If no db_rec_sep value is specified, the default value of unix is used. The spreadsheet program Microsoft Excel can read files of this type on either a Mac or a PC.

db_test Set the value of this field to anything ("yes" is a good choice) and formdb will display a sample of what data would be written to the data file, instead of actually writing to it.
field_required Use this field to make some of your own fields required. If the user doesn't fill them in, formdb will return an error message telling him or her which fields are missing. The value of this field should be a list of field names, each enclosed in {curly braces}. For example, if I have two that I want to make required, called "city"and "state", I could enter
<input type=hidden name "field_required"
value="{city}{state}">
.

By default, the error message that the user sees if a required value is left blank contains the exact name of the field. Depending on how the field was named, this may not provide a very good description for the user. In this case, you can use the format {fieldname=Long Name}. This way, the error message will show the Long Name of the field, which will hopefully give them a better idea which field to fill-in.

For example:
<input type=hidden name "field_required"
value= "{city=The City were you live} {state=Your State}">

from_address If this value is used, formdb will check to be sure it looks like a proper email address (though it's still quite possible to enter a meaningless value). You will most likely want to add from_address to the field_order parameter if you use this field.
keep_eols Set the value of this field to anything ("yes" is a good choice) and formdb will not convert the end-of-line characters that are sent as part of text fields into spaces. This has the advantage that the data will be exactly as the user typed it, particularly for textboxes. It has the disadvantage, however, that both Excel and Filemaker will confuse the EOL with the end-of-record marker, and create a new field. Therefore, this option cannot be used when importing data into either of these programs.
no_log Normally, formdb logs all data users submit, in a location that can only be read by system administrators. Set the value of this field to anything ("yes" is a good choice) and formdb will log only very minimal information about what happens when the user submits a form.

Use this option at your own risk. If you accidentally delete the data, it will be permanently lost.

return_URI

formdb posts a receipt to the sender that contains a "Return" button. This button normally points to the original form. If you would like the "Return" button to point to something else, use this tag. The value is the URL of the place the button should go.

For example:
<input type=hidden name="return_URI"
value="http://www.mtholyoke.edu">
.

receipt_page

If this field is set to the name of an HTML (or SHTML) file in the same directory as the page containing the form, that page is displayed instead of the default confirmation page. This allows you to create a custom confirmation page. You will probably always want to use this parameter.

To include the standard results within the custom confirmation page, place the comment
<!--%%PREVIEW%%--> at the location where you want them to appear.

Note: If your receipt page has any images or links to other pages in it, they must be absolute URLs. This is because at the time your page is being displayed the "working directory" of the URL is that of /cgi/formdb.

For instance, if the receipt page was stored in /offices/reg/thankyou.html
and wanted to refer to an image in that same folder, it should use a URL like
/offices/reg/someimage.gif.
If this is left as just someimage.gif, the Web browser will try to load
/cgi/someimage.gif, which does not exist.

Example HTML
Here's an example the HTML used in a web form that uses formdb to find out some information about the reader:

<form method=post action="/cgi/formdb">
<input type=hidden name="db_test" value="1">
<input type=hidden name="field_order" 
value="from_name from_address hobby">
<input type=hidden name="field_required"
value="{from_name=Your Name}
{from_address=Your Email}{hobby=Hobby}">
Name: <input name="from_name" size=35><p> Email: <input name="from_address" size=35><p> Hobby:
<select name="hobby"> <option value="">Choose One:</option> <option value="animation">Animation</option> <option value="chess">Chess</option> <option value="geocaching">Geocaching</option> <option value="cooking">Cooking</option> <option value="photography">Photography</option> </select><p>
<input type=submit value="Submit Information">

Example
To see what this form produces, fill-in some information in the form below and then select the Submit Information button.

* Required Fields

Name: *

Email: *

Hobby: *

Copyright © 2008 Mount Holyoke College • 50 College Street • South Hadley, Massachusetts 01075.
To contact the College, call 413-538-2000.
This page maintained by the LITS Web Team. Last modified on January 23, 2008.