Perl CGI: The Happy Path Form Basics

Prepared by Bill Kilgallon, Bill@KilgallonFamily.com

Supplying Information to your CGI Script



Managing State



Get Data



Post Data



Tracking State Information



Creating Forms



Getting Information from Forms



Annotated Example


#!C:\perl\bin\perl.exe -w
use CGI;
use strict;

# Create a perlCGI object.  It automatically picks up any arguments on
# the incoming URL.

my $query = new CGI;

# Create a header, and let it default arguments, it likely knows
# better then we do.

print $query->header();  

# Start the body of our document, and give it a title (shows up on the
# browser bar and on printouts).  All the legal fields within the HTML
# "BODY" tag are supported, and are optional.  Other unsupported
# options can be specified as well, and will be correctly added.  Note
# that there is nothing actually in the body tag, just HTML modifiers
# being specified.

print $query->start_html({-title=>'Form Test One...',
			  -author=>'Bill Kilgallon'});

print $query->hr();

# Indicate we are creating a form.
# For this example, everything defaults.  We will flesh it out later.
# print $query->startform({-method=>'post'});
print $query->startform({-method=>'get'});

# Generate a text box for data entry
# Render it regardless of if we have previously entered text or not.
print $query->h1('Please enter some text');
print $query->textfield({-name=>'TextfieldOne',
			 -default=>'Enter your text here',
			 -size=>50,
			 -maxlength=>100});

print $query->endform();

# Now conditionally report what the user typed in previously.

# If this is not the first time into the script...
if ($query->param()) {
    # Extract out whatever the contents of our field were.
    my $textInput = $query->param(-name=>'TextfieldOne');

    # Generate our output
    print $query->hr();
    print $query->p('The text you previously entered was:'), $query->br();
    print $query->em({-align=>'center'}, $textInput);
    print $query->hr();
}

# And finally, end the document.

print $query->end_html;

Excercise




Submit Button



Reset Buttons




Text Fields



Text Areas



Password Fields



Popup Menus



Scrolling Lists



Checkbox Groups



Standalone Checkbox



Radio Button Group



Generating URL's



Annotated Examples



Annotated Examples



Return to Index