Some newbie cgi form questions...

googleboy mynews44 at
Sun Aug 7 17:47:20 CEST 2005

for key in form.keys():Yes,  I know which fields are hidden because I
made them that way,  but  I am trying to figure out a way I can iterate
over the fields and do one thing with hidden fields (assign them to
variables that tell the form how to process) and a different thing with
non hidden fields (present them back to the browser with after
emailling them on to the form owner).  I want this script to work fro
several forms on the same webserver, some of which will have several
different and individual names.  I am also hopeful that I may be able
to extrapolate from that ways to differentiate other things from my
form input things, but we'll see how it goes.

My html code looks like this:

  <h1>Send Feedback</h1>

  <form action="cgi/" method="get">
<input name="subject" type="text" size="32" maxlength="196">Subject<br>
<input name="name" type="text" maxlength="64">Your name<br>
<input name="email1" type="text" size="24" maxlength="128">Your email
address. <br>
<br><br>Please let me know your thoughts below.<br><textarea
name="thoughts" cols="64" rows="12"></textarea><br>
<input  type=submit value="Submit">
<input type="hidden" name="recipient" value="foo at">
<input type="hidden" name="email" value="foo at">
<input type="hidden" name="mailserver" value="localhost">
<input name="Clear" type="button" value="Clear"></form>

In other news, I have tried suggested syntaxes aboce (thanks guys!) but
I get strange errors.  If the following:

for key in form.keys():
    if not form.keys():
        print "<h1> ERROR! <h1><BR>"
        print "Please go back and fill in all fields.  All fields are

I get a traceback in teh error_log file that looks like this:

Traceback (most recent call last):
  File "cgi/", line 34, in ?
    for key, value in form.items():
  File "/usr/local/lib/python2.3/", line 533, in __getattr__
    raise AttributeError, name
AttributeError: items

if this:

for key in form.keys():
    if not form.keys()[key]:
        print "<h1> ERROR! <h1><BR>"
        print "Please go back and fill in all fields.  All fields are
        print '</body></html>'

the I get this traceback:

Traceback (most recent call last):
  File "/var/www/users/senta/html/gobooks/cgi/", line 35, in ?
    if not form.keys()[key]:
TypeError: list indices must be integers

As you can see,  I am using python 2.3 (my web service provider is
responsible for this - I'd use 2.4.1 if I could)



More information about the Python-list mailing list