Maintaining State
#!/usr/local/bin/perl require "cgi-lib.pl"; &ReadParse(*form_data); print "Content-type: text/html\n\n"; // Print out form if this is the // users's first request. You've seen // this already! if ($form_data{'submit'} eq "") { print qq! <HTML> <HEAD> <TITLE>Testing Form Input</TITLE> </HEAD> <BODY> <FORM METHOD = "POST" ACTION = "self-refer.cgi"> <CENTER> <TABLE BORDER = "1"> <TR> <TH>First Name</TH> <TD><INPUT TYPE = "text" NAME = "f_name"></TD> </TR> <TR> <TH>Last Name</TH> <TD><INPUT TYPE = "text" NAME = "l_name"></TD> </TR> <TR> <TH>Email</TH> <TD><INPUT TYPE = "text" NAME = "email"></TD> </TR> </TABLE> <P> <INPUT TYPE = "SUBMIT" NAME = "submit" VALUE = "submit"> </CENTERv </FORM> </BODY> </HTML>!; exit; } // If the user has entered // only first name, // last name and email, let's // get phone number // to. But we must make sure // that we save the // values for first nme, last // name and email // as hidden form tags. elsif ($form_data{'submit'} eq "submit") { print qq! <HTML> <HEAD> <TITLE>Get More Data While Remembering Old</TITLE> </HEAD> <BODY> You submitted the following information: <P> <TABLE BORDER = "1">!; foreach $key (keys(%form_data)) { print qq! <TR> <TD>$key</TD> <TD>$form_data{$key}</TD> </TR>!; } // Here is where we ask for the // phone number print qq! </TABLE> <P> Thank you very much. However, we need one more bit of information. Please input your phone number below: <P> <FORM METHOD = "POST" ACTION = "self-refer.cgi"v <INPUT TYPE = "TEXT" NAME = "phone">!; // Here is were we add the // hidden variables. // Note that we do not want to // keep the value // for "submit" cause we are // going to create a // new submit button with a new // VALUE argument // so that we know which request // is coming in. foreach $key (keys(%form_data)) { if ($key ne "submit") { print qq! <INPUT TYPE = "HIDDEN" NAME = "$key" VALUE = "$form_data{$key}">!; } } print qq! <INPUT TYPE = "SUBMIT" NAME = "submit" VALUE = "Final Submit"> </FORM> </BODY> </HTML>!; } // If the user clicked a // button with "Final Submit" // then the above routines // would have both returned // false and we can assume that // the user has entered the // phone number, so we handle it. else { print qq! <HTML> <HEAD> <TITLE>Testing Form Input</TITLE> </HEAD> <BODY> <TABLE>!; foreach $key (keys(%form_data)) { print qq! <TR> <TD>$key</TD> <TD>$form_data{$key}</TD> </TR>!; } print qq! </TABLE> </BODY> </HTML>!; } Additional Resources:![]() Table of Contents Exercise Four ![]() |
Hosted by Graphics & Media Lab
http://graphics.cs.msu.su |
![]() |
mailto: Laboratory |