poll.html
View Results
poll.cgi
#!i:/perl/bin/perl
use CGI qw(:standard);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
use strict;
use Fcntl qw(:flock :seek);
my $outfile = "poll.out";
if (param('pick')) {
open(OUT, ">>$outfile") or &dienice("Couldn't open $outfile: $!");
flock(OUT, LOCK_EX); # set an exclusive lock
seek(OUT, 0, SEEK_END); # then seek the end of file
print OUT param('pick'),"\n";
close(OUT);
} else {
&dienice("You didn't pick anything!");
}
print redirect"results.cgi";
sub dienice {
my($msg) = @_;
print header;
print start_html("Error");
print h2("Error");
print $msg;
print end_html;
exit;
}
results.cgi
#!i:/perl/bin/perl
use CGI qw(:standard);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
use Fcntl qw(:flock :seek);
my $outfile = "poll.out";
print header;
print start_html("Results");
open(IN, "$outfile") or &dienice("Couldn't open $outfile: $!");
flock(IN, LOCK_SH);
seek(IN, 0, SEEK_SET);
my($total_votes, $results);
foreach my $i ("10", "1", "2", "3", "4", "5", "6", "7", "8", "9")
{$results{$i} = 0;}
while (my $rec = ) {
chomp($rec);
$total_votes = $total_votes + 1;
$results{$rec} = $results{$rec} + 1;
}
close(IN);
print <Poll number 1
| 1 |
$results{10} votes |
| 2 |
$results{1} votes |
| 3 |
$results{2} votes |
| 4 |
$results{3} votes |
| 5 |
$results{4} votes |
| 6 |
$results{5} votes |
| 7 |
$results{6} votes |
| 8 |
$results{7} votes |
| 9 |
$results{8} votes |
| 10 |
$results{9} votes |
$total_votes votes total
END
print end_html;
sub dienice {
my($msg) = @_;
print h2("Error");
print $msg;
print end_html;
exit;
}