##
#!/perl/bin/perl
print "Content-type: text/html\n\n";
$logpath = "data/browser.dat";
&parse;
sub parse{
if ($ENV{'REQUEST_METHOD'} eq 'GET') {
@pairs = split(/&/, $ENV{'QUERY_STRING'});
}
elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
}
else {exit;}
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s///g;
$form{$name} = $value;
}
}
$browser = $form{'browser'};
open (LOG, "$logpath");
@data = ;
close(LOG);
$not_found = 1;
open (LOG, ">$logpath");
foreach $line(@data) {
chomp($line);
($fcount,$fbrowser)= split(/\|/,$line);
if ($fbrowser eq $browser) {
$not_found = 0;
$fcount = $fcount+1;
print LOG "$fcount|$fbrowser\n";
}
else {
print "$line";
}
}
close(LOG);
if($not_found) {
open (LOG,">>$logpath");
print "1|$browser";
close(LOG);
}
# just prints out log to browser
open (LOG, "$logpath");
@data = ;
close(LOG);
foreach $line(@data) {
chomp($line);
print "$line
";
}
close(LOG);
print "$not_found";