#!/usr/bin/perl
my @data;
my $query;
if ( $ENV{REQUEST_METHOD} eq 'POST' )
{
read(STDIN, $query, $ENV{CONTENT_LENGTH});
} else
{
$query = $ENV{QUERY_STRING};
}
for ( split /&/, $query ){
my ($key, $val) = split /=/;
map{
s/\+/ /g;
s/%(..)/pack("c", hex($1))/eg;
} ($key, $val);
$form{$key} = $val;
}
InitData();
print "Content-type: text/html\n\n";
if ($form{mode} eq 'list'){ List(); }
elsif ($form{mode} eq 'register'){ Register(); }
elsif ($form{mode} eq 'admin'){ Admin(); }
elsif ($form{mode} eq 'admin_change'){ AdminChange(); }
else { ShowRegister(); }
sub List {
my $num = $#data;
my $table = "
Number of people registered : $num Cost for all is \12 dollars| Name | Handle | Paid? |
";
for (@data)
{
$table .= "| ".$_->{fname}.' '.
$_->{lname}." | ".
"".$_->{handle}." | ".
"".$_->{paid}." |
";
}
$table .= "
";
print $table;
}
sub ShowRegister {
print <
THAT
}
sub Register {
push @data, {'fname' => $form{fname}, 'lname' => $form{lname},
'handle' => $form{handle}, 'paid' => 'no'};
print <
Thanks for registering! Back to Urban LAN
THIS
SaveData();
}
sub Admin {
if ( $form{user} eq 'ryan' &&
$form{pass} eq '9810able12')
{
my $html = "";
print $html;
}
}
sub AdminChange {
if ( $form{user} eq 'ryan' && $form{pass} eq '9810able12' )
{
my $i = 0;
for ( @data )
{
$_->{fname} = $form{'fname-'.$i};
$_->{lname} = $form{'lname-'.$i};
$_->{handle} = $form{'handle-'.$i};
$_->{paid} = $form{'paid-'.$i};
$i++;
}
print "Back to table";
SaveData();
}
}
sub InitData {
open( DATA, ".data");
for ()
{
my ($first,$last,$handle,$paid) = split /==/;
chomp $paid;
push @data, {'fname'=>$first,'lname'=>$last,'handle'=>$handle,'paid'=>$paid};
}
close (DATA);
}
sub SaveData {
open (DATA, ">.data");
for (@data)
{
print DATA $_->{fname}.'=='.
$_->{lname}.'=='.
$_->{handle},'=='.
$_->{paid}."\n";
}
close DATA;
}