Live coverage of Fall Internet World '99! logo

internet.com
Join the free
WDVL newsletter!

home

Building a Form Processor

Building a Form Processor

  • Okay, now that we know how to read and parse incoming form data, it is time to put all the pieces together and write or first CGI program.

  • The most basic CGI program is the Form Processor that simply reads incoming form data and processes it. In this section, we will create a form processor to simply grab form data and echo it back to the web.

  • As always, first we will need an HTML form so that the user can submit some data. In this case, let's take advantage of the printing functions in perl and have a CGI script dynamically output he HTML instead of having an purely-HTML-based form. Consider the following script:

    #!/usr/local/bin/perl
    print "Content-type: text/html\n\n";
    print qq!
      <HTML>
      <HEAD>
      <TITLE>Testing Form Input</TITLE>
      </HEAD>
      <BODY>
      <FORM METHOD = "POST" ACTION = "fp.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">
      </CENTER>
      </FORM>
      </BODY>
      </HTML>!;
    

  • As you can see, this script simply outputs an HTML form. On the web, the following CGI script would produce the following interface:

[Example]

  • As you can see, when the user hits the "Submit" button, they will send their information to fp.cgi via the POST method. Let's take a look at fp.cgi:

    #!/usr/local/bin/perl
    require "cgi-lib.pl";
    &ReadParse(*form_data);
    
    print "Content-type: text/html\n\n";
    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>!;
    

  • fp.cgi will simply read and parse the form data and then echo back the user's input. The following figure shows a typical response:

[Example]

Notice that the form values do not come in the order that you specified on your HTML form. This is because associative arrays store their name/value pairs using their own logic for memory savings. You have to write your own logic for sorting name/value pairs if that is important to you

Additional Resources:

Reading and Parsing Form Data with cgi-lib.pl
Table of Contents
Self-Referential Scripts

Up to => Home / Authoring / Scripting / Tutorial

Instantly look up a "techie" word using Webopedia!!


internet.com
e-commerce
WebDeveloper Network



Copyright 1999 internet.com Corporation. Legal Notices. Privacy Policy.

www.internet.com