#!/usr/bin/perl use CGI; # Create the CGI object my $query = new CGI; # Output the HTTP header print $query->header ( ); # Process form if submitted; otherwise display it if ( $query->param("submit") ) { process_form ( ); } else { display_form ( ); } sub process_form { if ( validate_form ( ) ) { print <Thank You Thank you - your form was submitted correctly! END_HTML } } sub validate_form { my $your_name = $query->param("your_name"); my $your_sex = $query->param("your_sex"); my $your_age = $query->param("your_age"); my $error_message = ""; $error_message .= "Please enter your name
" if ( !$your_name ); $error_message .= "Please specify your sex
" if ( !$your_sex ); $error_message .= "Please specify your age
" if ( $your_age eq "Please select" ); if ( $error_message ) { # Errors with the form - redisplay it and return failure display_form ( $error_message, $your_name, $your_sex, $your_age ); return 0; } else { # Form OK - return success return 1; } } sub display_form { my $error_message = shift; my $your_name = shift; my $your_sex = shift; my $your_age = shift; # Remove any potentially malicious HTML tags $your_name =~ s/<([^>]|\n)*>//g; # Build "selected" HTML for the "Your Sex" radio buttons my $your_sex_f_sel = $your_sex eq "f" ? " checked" : ""; my $your_sex_m_sel = $your_sex eq "m" ? " checked" : ""; # Build "selected" HTML for the "Your Age" drop-down list my $your_age_html = ""; my @your_age_opts = ( "Please select", "Under 18", "18-35", "35-55", "Over 55" ); foreach my $your_age_option ( @your_age_opts ) { $your_age_html .= "