You can use many languages to write the form handler script that is run when the user clicks the button on a form.
It is up to you to decide what to do with form data. You might e-mail it to somebody, or write it to a file, or add it to a database.
To write the handler script, you must know what controls are on the form, the name of each control, and what kind of data you expect.
There are three different protocols for transmitting the
form data to the handler script. Use the method and enctype attributes on
the form element to select one of these
protocols:
If you use method='get', the
name/value pairs from the form are encoded using
URL encoding; see Section 14.11, “The URL encoding method for forms data”. The URI of the document
containing of the form has a question mark (?) appended to it, followed by the encoded
form data, and the resulting string is sent to the
handler script.
Use this method only when the amount of form data is relatively small (less than 100 characters or so in encoded form), and when you don't care if the values from the form appear in the browser window.
If you use method='post' and enctype='application/x-www-form-urlencoded',
the form values are encoded as a string, as described
in Section 14.11, “The URL encoding method for forms data”.
If the volume of form data is quite large, or if you
allow uploading of files (as described in Section 14.1.5, “The file control: Uploading user
files”, use method='post' and enctype='multipart/form-data'.
For the details of MIME multipart transmissions, see RFC 2045.
Most of the popular scripting languages support retrieval
of values from these protocols. For example, the Python
language has a module called cgi that
makes it trivial to retrieve form values transmitted by
any of these three protocols.