[Tutor] CGI Programming
Tim Johnson
tim@johnsons-web.com
Thu Jul 31 22:09:01 2003
* Elizabeth Bernert <ebernert@crpud.net> [030731 16:48]:
> I am programming in Pythono 2.2 through Apache. I have searched though
> google and have been unable to come up with anything. I can "hold" onto
> the inputs from the user for one submit, but no farther. Is there a way
> to hold onto the words for another submit. I am writing Mad Libs (C)
> for a class project and am at a loss. I have attached my project and
> placed comments at the problem. Thank-you in advance for all advice.
> Sincerely,
Hello Elizabeth:
One simple way to "persist" data would be to encode
it in a query string that would carry data from
page 1 posted to page 2 and then use the "get" method
to transmit to page 3 (as an example)
Another way, expanding on this example is that the data
posted from page 1 (or passed via a query string as
in http://www.somdomain.com/cgi-bin/cgi.py?var1=one&var2=two,
for that matter) would be stored within a form on page 2
in fields of input/type "hidden". It would then be posted
forward to page 3.
The process I'm describing is language independent -
there's also FastCgi, but learn CGI first :-)
pythonesque example below....
> Elizabeth Bernert
> #!c:/Python22/python.exe
> # http://localhost:8080/cgi-bin/LIB_College.py
> # Program Files\Apache Group\Apache2\cgi-bin\LIB_College.py
> # Final Project - python CGI script
>
> import cgi
> import cgitb; cgitb.enable()
>
> print "Content-type: text/html\n\n"
>
> form = cgi.FieldStorage()
>
> ADJECTIVE1 = str(form.getvalue('ADJECTIVE1'))
> PLURAL_NOUN1 = str(form.getvalue('PLURAL_NOUN1'))
> PLURAL_NOUN2 = str(form.getvalue('PLURAL_NOUN2'))
> PLURAL_NOUN3 = str(form.getvalue('PLURAL_NOUN3'))
> ADJECTIVE2 = str(form.getvalue('ADJECTIVE2'))
> ADJECTIVE3 = str(form.getvalue('ADJECTIVE3'))
> PLURAL_NOUN4 = str(form.getvalue('PLURAL_NOUN4'))
> NUMBER1 = str(form.getvalue('NUMBER1'))
> NOUN1 = str(form.getvalue('NOUN1'))
> PLURAL_NOUN5 = str(form.getvalue('PLURAL_NOUN5'))
> AN_OCCUPATION1 = str(form.getvalue('AN_OCCUPATION1'))
> AN_OCCUPATION2 = str(form.getvalue('AN_OCCUPATION2'))
> PLURAL_NOUN6 = str(form.getvalue('PLURAL_NOUN6'))
> ADJECTIVE4 = str(form.getvalue('ADJECTIVE4'))
So you could store something preposted
as in
'<INPUT TYPE=hidden NAME=PLURAL_NOUN4 VALUE="%s">' %(str(form.getvalue('PLURAL_NOUN4')))
# untested code!!
HTH
tim
>
> print '<html>'
>
> print "Our American Universities offer students many" + " " + ADJECTIVE1
> print "courses that will prepare them to become good" + " " + PLURAL_NOUN1 + ". You can get a degree as a Bachelor of" + " " + PLURAL_NOUN2 + ", or tske a regular liberal" + PLURAL_NOUN3
> print "course. Or, if you want to become a/an" + " " + ADJECTIVE2
> print "engineer, you can study" + " " + ADJECTIVE3
> print "mathmatics and differential" + " " + PLURAL_NOUN4 + ". Then after" + " " + NUMBER1
> print "years, if you want to continue your studis, you can write a/an" + " " + NOUN1
> print "and become a Doctor of" + " " + PLURAL_NOUN5 + ". When you get out into the world, if you have a diploma from a university, you will be able to get a job as a/an" + " " + AN_OCCUPATION1 + ". If you don't have a diploma, you will have to take a job as a/an" + " " + AN_OCCUPATION2 + ". So it's important that you study hard in highschool so you will do well on your College Enterence" + " " + PLURAL_NOUN6 + ". Remember, 'A little learning is a/an" + " " + ADJECTIVE4
> print "thing."
>
> print '</html>'
>
> #HERE IS MY PROBLEM
> #
> #
> #
> #
> print """
> <FORM METHOD=POST ACTION="http://localhost:8080/cgi-bin/LIB_finalexam.py">
>
> <CENTER><TABLE WIDTH="100%" >
> <TR><TD ALIGN=RIGHT WIDTH="20%"></TD>
> <TD><INPUT type=submit name=send value="Next Mad Lib!"></TD></TR>
> </TABLE></CENTER>
> </FORM>
> """
> #
> #
> #MY PROBLEM IS ABOVE
> #
> #
> print """
> <FORM METHOD=POST ACTION="http://localhost:8080/cgi-bin/LIB_finalexam.py">
> <UL><I>If you want to input new words, then please fill out the entire form:</I></UL>
> <BR>
> <BR>
> <CENTER><TABLE WIDTH="100%" >
> <TR><TD ALIGN=RIGHT WIDTH="20%">ADJECTIVE::</TD>
> <TD><INPUT TYPE=text NAME=ADJECTIVE1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">PLURAL_NOUN:</TD>
> <TD><INPUT TYPE=text NAME=PLURAL_NOUN1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">PLURAL_NOUN:</TD>
> <TD><INPUT TYPE=text NAME=PLURAL_NOUN2 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">PLURAL_NOUN:</TD>
> <TD><INPUT TYPE=text NAME=PLURAL_NOUN3 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">ADJECTIVE:</TD>
> <TD><INPUT TYPE=text NAME=ADJECTUIVE2 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">ADJECTIVE:</TD>
> <TD><INPUT TYPE=text NAME=ADJECTIVE3 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">PLURAL_NOUN:</TD>
> <TD><INPUT TYPE=text NAME=PLURAL_NOUN4 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NUMBER:</TD>
> <TD><INPUT TYPE=text NAME=NUMBER1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NOUN:</TD>
> <TD><INPUT TYPE=text NAME=NOUN1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">PLURAL_NOUN:</TD>
> <TD><INPUT TYPE=text NAME=PLURAL_NOUN5 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">AN_OCCUPATION:</TD>
> <TD><INPUT TYPE=text NAME=AN_OCCUPATION1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">AN_OCCUPATION:</TD>
> <TD><INPUT TYPE=text NAME=AN_OCCUPATION2 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">PLURAL_NOUN:</TD>
> <TD><INPUT TYPE=text NAME=PLURAL_NOUN6 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">ADJECTIVE:</TD>
> <TD><INPUT TYPE=text NAME=ADJECTIVE4 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">A_PERSON:</TD>
> <TD><INPUT TYPE=text NAME=A_PERSON1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NOUN:</TD>
> <TD><INPUT TYPE=text NAME=NOUN2 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NOUN:</TD>
> <TD><INPUT TYPE=text NAME=NOUN3 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">A_PERSON:</TD>
> <TD><INPUT TYPE=text NAME=A_PERSON2 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NUMBER:</TD>
> <TD><INPUT TYPE=text NAME=NUMBER2 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NOUN:</TD>
> <TD><INPUT TYPE=text NAME=NOUN4 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">FAMOUS_PERSON:</TD>
> <TD><INPUT TYPE=text NAME=*FAMOUS_PERSON1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">VERB:</TD>
> <TD><INPUT TYPE=text NAME=VERB1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NAME:</TD>
> <TD><INPUT TYPE=text NAME=NAME1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NAME:</TD>
> <TD><INPUT TYPE=text NAME=NAME2 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NOUN:</TD>
> <TD><INPUT TYPE=text NAME=NOUN5 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NOUN:</TD>
> <TD><INPUT TYPE=text NAME=NOUN6 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%"></TD>
> <TD><INPUT type=submit name=send value="A New Mad Lib Please!"></TD></TR>
> <BR>
> <UL><I>Don't forget:
> <BR> An <B> ADJECTIVE </B> describes something or somebody. Lumpy, soft, blond, ugly, messay, and short are adjectives.
> <BR> An <B> ADVERB </B> tells how something is done. It modifies a verb and usually ends in 'ly'.
> <BR> A <B> NOUN </B> is the name of a person, place, or thing. Woman, sidewalk, umbrella, horse-collar, bathtub, and nose are nouns.
> <BR> A <B> VERB </B> is an action word. Run, pitch, jump, and swim are verbs.
> <BR> When a <B> GEOGRAPHICAL LOCATION</B> is asked for, give any sort of place: a country or city [Spain, Cleaveland]
> or a room [Bathroom, Kitchen].
> <BR> An <B> EXCLAMATION </B> or <B> SILLY WORD </B> is any sort of funny sound, gasp, grunt, or outcry.
> Wow! Ouch! Whomp! Ick! Gadzooks! are exclamations and silly words.
> <BR> When a specific word is asked for like <B> NUMBER, A COLOR, AN ANIMAL, </B> or <B> A PART OF THE BODY </B>,
> what is meant is a word that is one of those things.
> <BR> When a <B> PLURAL </B> is asked for be sure to pluralize the word.
> </UL>
> </TABLE></CENTER>
> </FORM>
>
> """
>
> form = cgi.FieldStorage()
>
> if len(form)>0:
> ADJECTIVE1 = form.getvalue('ADJECTIVE1')
> ADJECTIVE2 = form.getvalue('ADJECTIVE2')
> ADJECTIVE3 = form.getvalue('ADJECTIVE3')
> ADJECTIVE4 = form.getvalue('ADJECTIVE4')
> PLURAL_NOUN1 = form.getvalue('PLURAL_NOUN1')
> PLURAL_NOUN2 = form.getvalue('PLURAL_NOUN2')
> PLURAL_NOUN3 = form.getvalue('PLURAL_NOUN3')
> PLURAL_NOUN4 = form.getvalue('PLURAL_NOUN4')
> PLURAL_NOUN5 = form.getvalue('PLURAL_NOUN5')
> PLURAL_NOUN6 = form.getvalue('PLURAL_NOUN6')
> NUMBER1 = form.getvalue('NUMBER1')
> NUMBER2 = form.getvalue('NUMBER2')
> NOUN1 = form.gervalue('NOUN1')
> NOUN2 = form.getvalue('NOUN2')
> NOUN3 = form.getvalue('NOUN3')
> NOUN4 = form.getvalue('NOUN4')
> NOUN5 = form.getvalue('NOUN5')
> NOUN6 = form.getvalue('NOUN6')
> AN_OCCUPATION1 = form.getvalue('AN_OCCUPATION1')
> AN_OCCUPATION2 = form.getvalue('AN_OCCUPATION2')
> A_PERSON1 = form.getvalue('A_PERSON1')
> A_PERSON2 = form.getvalue('A_PERSON2')
> NAME1 = form.getvalue('NAME1')
> NAME2 = form.getvalue('NAME2')
> VERB1 = form.getvalue('VERB1')
> FAMOUS_PERSON1 = form.getvalue('FAMOUS_PERSON1')
> else:
> ADJECTIVE1 = 'blond'
> ADJECTIVE2 = 'blond'
> ADJECTIVE3 = 'blond'
> ADJECTIVE4 = 'blond'
> PLURAL_NOUN1 = 'women'
> PLURAL_NOUN2 = 'men'
> PLURAL_NOUN3 = 'women'
> PLURAL_NOUN4 = 'men'
> PLURAL_NOUN5 = 'women'
> PLURAL_NOUN6 = 'men'
> NUMBER1 = '1'
> NUMBER2 = '2'
> NOUN1 = 'woman'
> NOUN2 = 'man'
> NOUN3 = 'woman'
> NOUN4 = 'man'
> NOUN5 = 'woman'
> NOUN6 = 'man'
> AN_OCCUPATION1 = 'teacher'
> AN_OCCUPATION2 = 'waitress'
> A_PERSON1 = ' fill in later '
> A_PERSON2 = ' fill in later '
> NAME1 = ' fill in later '
> NAME2 = ' fill in later '
> VERB1 = 'run'
> FAMOUS_PERSON1 = 'GOD'
>
> #!c:/Python22/python.exe
> # http://localhost:8080/cgi-bin/final.py
> # Program Files\Apache Group\Apache2\cgi-bin\final.py
> # Final Lab - python CGI script
> # Elizabeth Bernert
>
> import cgi
> import cgitb; cgitb.enable()
>
> print "Content-type: text/html\n\n"
>
> print """
> <FORM METHOD=POST ACTION="http://localhost:8080/cgi-bin/LIB_college.py">
> <UL><I>Please fill out the entire form:</I></UL>
> <UL><I>Don't forget:
> <BR> An <B> ADJECTIVE </B> describes something or somebody. Lumpy, soft, blond, ugly, messay, and short are adjectives.
> <BR> An <B> ADVERB </B> tells how something is done. It modifies a verb and usually ends in 'ly'.
> <BR> A <B> NOUN </B> is the name of a person, place, or thing. Woman, sidewalk, umbrella, horse-collar, bathtub, and nose are nouns.
> <BR> A <B> VERB </B> is an action word. Run, pitch, jump, and swim are verbs.
> <BR> When a <B> GEOGRAPHICAL LOCATION</B> is asked for, give any sort of place: a country or city [Spain, Cleaveland]
> or a room [Bathroom, Kitchen].
> <BR> An <B> EXCLAMATION </B> or <B> SILLY WORD </B> is any sort of funny sound, gasp, grunt, or outcry.
> Wow! Ouch! Whomp! Ick! Gadzooks! are exclamations and silly words.
> <BR> When a specific word is asked for like <B> NUMBER, A COLOR, AN ANIMAL, </B> or <B> A PART OF THE BODY </B>,
> what is meant is a word that is one of those things.
> <BR> When a <B> PLURAL </B> is asked for be sure to pluralize the word.
> </UL>
> <BR>
> <BR>
> <CENTER><TABLE WIDTH="100%" >
> <TR><TD ALIGN=RIGHT WIDTH="20%">ADJECTIVE::</TD>
> <TD><INPUT TYPE=text NAME=ADJECTIVE1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">PLURAL_NOUN:</TD>
> <TD><INPUT TYPE=text NAME=PLURAL_NOUN1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">PLURAL_NOUN:</TD>
> <TD><INPUT TYPE=text NAME=PLURAL_NOUN2 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">PLURAL_NOUN:</TD>
> <TD><INPUT TYPE=text NAME=PLURAL_NOUN3 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">ADJECTIVE:</TD>
> <TD><INPUT TYPE=text NAME=ADJECTIVE2 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">ADJECTIVE:</TD>
> <TD><INPUT TYPE=text NAME=ADJECTIVE3 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">PLURAL_NOUN:</TD>
> <TD><INPUT TYPE=text NAME=PLURAL_NOUN4 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NUMBER:</TD>
> <TD><INPUT TYPE=text NAME=NUMBER1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NOUN:</TD>
> <TD><INPUT TYPE=text NAME=NOUN1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">PLURAL_NOUN:</TD>
> <TD><INPUT TYPE=text NAME=PLURAL_NOUN5 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">AN_OCCUPATION:</TD>
> <TD><INPUT TYPE=text NAME=AN_OCCUPATION1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">AN_OCCUPATION:</TD>
> <TD><INPUT TYPE=text NAME=AN_OCCUPATION2 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">PLURAL_NOUN:</TD>
> <TD><INPUT TYPE=text NAME=PLURAL_NOUN6 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">ADJECTIVE:</TD>
> <TD><INPUT TYPE=text NAME=ADJECTIVE4 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">A_PERSON:</TD>
> <TD><INPUT TYPE=text NAME=A_PERSON1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NOUN:</TD>
> <TD><INPUT TYPE=text NAME=NOUN2 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NOUN:</TD>
> <TD><INPUT TYPE=text NAME=NOUN3 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">A_PERSON:</TD>
> <TD><INPUT TYPE=text NAME=A_PERSON2 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NUMBER:</TD>
> <TD><INPUT TYPE=text NAME=NUMBER2 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NOUN:</TD>
> <TD><INPUT TYPE=text NAME=NOUN4 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">FAMOUS_PERSON:</TD>
> <TD><INPUT TYPE=text NAME=*FAMOUS_PERSON1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">VERB:</TD>
> <TD><INPUT TYPE=text NAME=VERB1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NAME:</TD>
> <TD><INPUT TYPE=text NAME=NAME1 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NAME:</TD>
> <TD><INPUT TYPE=text NAME=NAME2 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NOUN:</TD>
> <TD><INPUT TYPE=text NAME=NOUN5 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%">NOUN:</TD>
> <TD><INPUT TYPE=text NAME=NOUN6 SIZE=50 VALUE=""></TD</TR>
> <TR><TD ALIGN=RIGHT WIDTH="20%"></TD>
> <TD><INPUT type=submit name=send value="Send the words!"></TD></TR>
> </TABLE></CENTER>
> </FORM>
>
> """
>
> form = cgi.FieldStorage()
>
> if len(form)>0:
> ADJECTIVE1 = form.getvalue('ADJECTIVE1')
> ADJECTIVE2 = form.getvalue('ADJECTIVE2')
> ADJECTIVE3 = form.getvalue('ADJECTIVE3')
> ADJECTIVE4 = form.getvalue('ADJECTIVE4')
> PLURAL_NOUN1 = form.getvalue('PLURAL_NOUN1')
> PLURAL_NOUN2 = form.getvalue('PLURAL_NOUN2')
> PLURAL_NOUN3 = form.getvalue('PLURAL_NOUN3')
> PLURAL_NOUN4 = form.getvalue('PLURAL_NOUN4')
> PLURAL_NOUN5 = form.getvalue('PLURAL_NOUN5')
> PLURAL_NOUN6 = form.getvalue('PLURAL_NOUN6')
> NUMBER1 = form.getvalue('NUMBER1')
> NUMBER2 = form.getvalue('NUMBER2')
> NOUN1 = form.gervalue('NOUN1')
> NOUN2 = form.getvalue('NOUN2')
> NOUN3 = form.getvalue('NOUN3')
> NOUN4 = form.getvalue('NOUN4')
> NOUN5 = form.getvalue('NOUN5')
> NOUN6 = form.getvalue('NOUN6')
> AN_OCCUPATION1 = form.getvalue('AN_OCCUPATION1')
> AN_OCCUPATION2 = form.getvalue('AN_OCCUPATION2')
> A_PERSON1 = form.getvalue('A_PERSON1')
> A_PERSON2 = form.getvalue('A_PERSON2')
> NAME1 = form.getvalue('NAME1')
> NAME2 = form.getvalue('NAME2')
> VERB1 = form.getvalue('VERB1')
> FAMOUS_PERSON1 = form.getvalue('FAMOUS_PERSON1')
> else:
> ADJECTIVE1 = 'blond'
> ADJECTIVE2 = 'blond'
> ADJECTIVE3 = 'blond'
> ADJECTIVE4 = 'blond'
> PLURAL_NOUN1 = 'women'
> PLURAL_NOUN2 = 'men'
> PLURAL_NOUN3 = 'women'
> PLURAL_NOUN4 = 'men'
> PLURAL_NOUN5 = 'women'
> PLURAL_NOUN6 = 'men'
> NUMBER1 = '1'
> NUMBER2 = '2'
> NOUN1 = 'woman'
> NOUN2 = 'man'
> NOUN3 = 'woman'
> NOUN4 = 'man'
> NOUN5 = 'woman'
> NOUN6 = 'man'
> AN_OCCUPATION1 = 'teacher'
> AN_OCCUPATION2 = 'waitress'
> A_PERSON1 = ' fill in later '
> A_PERSON2 = ' fill in later '
> NAME1 = ' fill in later '
> NAME2 = ' fill in later '
> VERB1 = 'run'
> FAMOUS_PERSON1 = 'GOD'
> #!c:/Python22/python.exe
> # http://localhost:8080/cgi-bin/mult.py
> # Program Files\Apache Group\Apache2\cgi-bin\mult.py
> # Final Project - python CGI script
>
> import cgi
>
> import cgitb; cgitb.enable()
>
> print "Content-type: text/html\n\n"
>
> form = cgi.FieldStorage()
>
> ADJECTIVE1 = str(form.getvalue('ADJECTIVE1'))
> A_PERSON1 = str(form.getvalue('A_PERSON1'))
> NOUN1 = str(form.getvalue('NOUN1'))
> PLURAL_NOUN1 = str(form.getvalue('PLURAL_NOUN1'))
> NOUN2 = str(form.getvalue('NOUN2'))
> NOUN3 = str(form.getvalue('NOUN3'))
> A_PERSON2 = str(form.getvalue('A_PERSON2'))
> NUMBER1 = str(form.getvalue('NUMBER1'))
> PLURAL_NOUN2 = str(form.getvalue('PLRAL_NOUN2'))
> NOUN4 = str(form.getvalue('NOUN4'))
> PLURAL_NOUN3 = str(form.getvalue('PLURAL_NOUN3'))
>
> print '<html>'
>
> print "Well it's time for final exams again. Her are some sample questions with" + " " + ADJECTIVE1
> print "answers that may give you an idea of what final exams are like:"
> print "<BR> <BR> <B> QUESTION: </B>"
> print "<BR> Who was the first president of the United States?"
> print "<BR> <B> ANSWER: </B>"
> print "<BR>" + A_PERSON1
> print ", who was also called, 'The" + " " + NOUN1
> print "of Our Country."
> print "<BR> <BR> <B> QUESTION: </B>"
> print "<BR> What is the shortest distance between two" + " " + PLURAL_NOUN1 + "?"
> print "<BR> <B> ANSWER: </B>"
> print "<BR> A straight" + " " + NOUN2 + "."
> print "<BR> <BR> <B> QUESTION: </B>"
> print "Who said, 'I regret that I only have one" + " " + NOUN3
> print "to give for my country.'?"
> print "<BR> <B> ANSWER: </> "
> print "<BR>" + A_PERSON2 + "."
>
> print '</html>'
--
Tim Johnson <tim@johnsons-web.com>
http://www.alaska-internet-solutions.com
http://www.johnsons-web.com