About Me 2

#!/usr/bin/perl -w
#PRINT THE STANDARD 200-LEVEL HTTP HEADER
print “Content-Type:text/html\n\n”;

#DEPENDING ON THE METHOD OF THE FORM THE IF STATMENT WILL EITHER DISPLAY THE FORM OR PROCESS
#THE FORM AND DISPLAY THE DATA

#IF THE METHOD IS GET THEN THE SCRIPT WILL DISPLAY THE FORM
if ($ENV{‘REQUEST_METHOD’} eq ‘GET’) {

print qq~
<h1>Student Survey</h1>
<form action=”/cgi-bin/aboutme2.cgi” method=”POST”>
<table width=”36%” border=”1″>
<tr>
<td><div align=”right”>Full Name: </div></td>
<td><input type=”text” name=”person”></td>
</tr>
<tr>
<td><div align=”right”>Favourite Sport: </div></td>
<td><input type=”text” name=”sport”></td>
</tr>
<tr>
<td><div align=”right”>Favourite Seneca Course: </div></td>
<td><input type=”text” name=”course”></td>
</tr>
<tr>
<td><div align=”right”>Current GPA: </div></td>
<td><input type=”text” name=”gpa”></td>
</tr>
<tr>
<td><div align=”right”>
<input type=”submit” name=”send” value=”send”>
</div></td>
<td><input type=”reset” name=”reset” value=”Reset”></td>
</tr>
</table>

</form>
~;

} elsif ($ENV{‘CONTENT_LENGTH’} > 0) {

read(STDIN, $buffer, $ENV{‘CONTENT_LENGTH’});

#BREAK THEDATA UP BY AMPERSANDS &&&&; AND STORE IT IN AN ARRAY
@pairs = split(/&/, $buffer);

#START A LOOP TO PROCESS FORM DATA
foreach $pair (@pairs) {
($key, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(“C”, hex($1))/eg;
$form{$key} = $value;
}
#send data to the browser as html
print “<html><head><title>STUDENT SURVEY</title></head><body>\n”;

&displayInfo();

print “</body></html>\n”;
}

#THIS SUBROUTINE WILL DISPLAY INFORMATION RECEIVED FROM THE FORM
sub displayInfo {
print “Full Name:   “,                  $form{“person”}, “<br>”;
print “Favourite Sport:   “,            $form{“sport”}, “<br>”;
print “Favourite Seneca Course:   “,    $form{“course”}, “<br>”;
print “GPA:   “,                        $form{“gpa”}, “<br>”;
}

~ by sandmanthegreat on June 24, 2009.

Leave a Reply