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>”;
}

Leave a Reply