CGI Show Online Users
CGI
Download (.zip)
#!perl -w use strict;
my $data_file="count-file.dat"; # The file that keeps a record of the visitors. my $timeout="100"; # The value (seconds) in which time to count visitors
my $time_now=time; my $visitor_ip=$ENV{'REMOTE_ADDR'}; my $visitors="1"; my(@new);
open(DATA, "$data_file")|| file_error("Error reading <u>$data_file</u> : $!"); my @data=<DATA>; close(DATA);
foreach my $data_value (@data){ my($logged_ip, $logged_time) = split(/\|/, $data_value); my $time_diff=$time_now-$logged_time; push(@new, $data_value) if ($time_diff <= $timeout); }
open(UPDATED, ">$data_file")|| file_error("Error writing to <u>$data_file</u> : $!"); foreach my $record (@new) { my($logged_ip, $logged_time) = split(/\|/, $record); print UPDATED "$record" if ($visitor_ip ne $logged_ip); $visitors++ if ($visitor_ip ne $logged_ip); } print UPDATED "$visitor_ip|$time_now\n"; close(UPDATED);
sub file_error { print "Content-type: text/html\n\n"; print "<font face=Verdana size=2>@_</font>"; exit; }
print "Content-type: text/html\n\n"; print "$visitors";
exit;
|