"you can use CGI" is a bit of a pants answer, KaptainKaya (nice name btw - kaya is yum). You can use any number of different languages to process forms, such as php, asp, perl etc.
basically a form is made up of several parts, and its complexity and functionality is wholly dependant on what you actually need to do with it.
It will start with a <form> and end with </form>. The most important attributes to the <form> tag will be what method the form takes, and what script will process the information in your form (for example, a script might take what is written in the form, and send it to a set email address). If you are passing variables to a script, they all need to be named the same as the name of the variables in the processing script, otherwise your form will not work (well, thats obvious).
in between the form tags there will be any number of things such as input boxes, text boxes, select boxes etc.
It is important that each of these objects in the form is given a 'name' attribute so that the script you are passing these variables to knows what is what.
So, as an example, here is the code for a simple form:
<BLOCKQUOTE><font size="1"face="Geneva, Verdana, Arial">code:</font><HR><pre><font size=1 face=courier>
<form method=<font color = red>"POST"</font> action=<font color = red>"myscript.php"</font>>
<input type=<font color = red>"text"</font> name=<font color = red>"sometext"</font> length=<font color = red>"<font color = blue>30</font>"</font>>
<input type=<font color = red>"submit"</font> value=<font color = red>"press this button!"</font>>
</form>
</font>[/code]
That was a really simple form that basically has an input box and a submit button.
Anything that is written in the input box is a variable with the name 'sometext'.
myscript.php will have instructions in it as to what to do with the data contained in 'sometext'.
Thus, when the data in the form is passed to 'myscript.php' everything should work fine and the data will be processed according to the instructions in 'myscript.php' - this could be a number of things such as add the data in 'sometext' to a database, or email 'sometext' to your email address etc.
hmmm reading back on this, I havent made it that clear really, but I hope Ive at least helped a little!
cheers
Jon