This commit is contained in:
Olivier Sirol 2000-06-06 16:56:11 +00:00
parent 019ebc1a74
commit 8fe46a1309
154 changed files with 20560 additions and 0 deletions

View File

@ -0,0 +1,25 @@
mv HIT.CFG hit.cfg
mv HIT.CNT hit.cnt
mv HIT.FLK hit.flk
mv HIT.XBM hit.xbm
mv HIT1.DAT hit1.dat
mv HIT1.LOG hit1.log
mv HIT10.DAT hit10.dat
mv HIT11.DAT hit11.dat
mv HIT12.DAT hit12.dat
mv HIT2.DAT hit2.dat
mv HIT2.LOG hit2.log
mv HIT3.DAT hit3.dat
mv HIT4.DAT hit4.dat
mv HIT5.DAT hit5.dat
mv HIT6.DAT hit6.dat
mv HIT7.DAT hit7.dat
mv HIT8.DAT hit8.dat
mv HIT9.DAT hit9.dat
mv HITCFG.PL hitcfg.pl
mv HITMAN.PL hitman.pl
mv HITMAT.CGI hitmat.cgi
mv HITMAT.PWD hitmat.pwd
mv HITXBM.PL hitxbm.pl
mv HOW2HIT.TXT how2hit.txt
mv SINCE.XBM since.xbm

View File

@ -0,0 +1 @@
1|1|1|N|

View File

View File

View File

@ -0,0 +1,4 @@
#define hit_width 1
#define hit_height 1
static char hit_bits[] = {
0x00};

View File

@ -0,0 +1,215 @@
#! /usr/local/bin/perl
#
# HITCFG.PL
# File maintenance module required by HITMATIC
#
# Filename: hitcfg.pl
# Last revised: July 08, 1998
# Copyright: 1997,1998 by Joe DePasquale
# E-Mail: crypt@getcruising.com
# Website: http://www.GetCruising.com
#
########################################################################
# #
# This script and accompanying files may be distributed freely #
# and modified, provided this header with my name, E-Mail address and #
# this notice remain intact. Ownership rights remain with me. You may #
# not sell this script without my approval. #
# #
# This script comes with no guarantee or warranty except for my good #
# intentions. By using this code you agree to indemnify me from any #
# liability that might arise from it's use. #
# #
# There is no technical support for this script, neither am I a #
# professional programmer. Refer to 'HELPME.TXT' for further guidance. #
# #
########################################################################
sub checkCfg # Maintain hit.log, hitx.dat and hit.cfg
{
open (CFG,"+<$HITCFG") || &endIt;
flock (CFG,2); seek (CFG,0,0);
$cfgFile = <CFG>;
($logDay,$datMonth,$cntMonth,$cntFlag,$eol) = split (/\|/,$cfgFile);
# If not done since midnight ...
# If new day, add daily hits to month file
if ($logDay != $dayStamp)
{ &newDay;
}
# If new month, empty last year's month file and update cfg
if ($datMonth+0 != $month)
{ &newMonth;
}
# If new count, recount hits since cntMonth
if ($cntFlag eq 'Y')
{ require "./hitxbm.pl";
&newCount;
}
close (CFG);
} # end checkCfg
sub newDay
{
$HITDAT = "$HITMON$datMonth.dat";
@dyinMon = (0,31,28,31,30,31,30,31,31,30,31,30,31);
$dyinMon = $dyinMon[$datMonth];
open (DAT,"+<$HITDAT") || &endIt;
flock (DAT,2); seek (DAT,0,0);
@hitDat = <DAT>;
# Backup monthly data if trigger
if ($bakFlag eq 'Y' && ($jDate % $bakTime ==0) && !-e $HITBAK)
{ &backUp (@hitDat);
}
# add this month's hits to Tbl hash
foreach $hitLine (@hitDat)
{ @hits = split (/\|/,$hitLine);
$page = $hits[0];
$Tbl{$page}[0] = $page;
for $day (1..$dyinMon)
{ $Tbl{$page}[$day] += $hits[$day];
}
$Index{$page} = 'Y';
}
# Read log file
open (LOG1,"+<$HITLOG1") || &endIt;
flock (LOG1,2); seek (LOG1,0,0);
@logFile = <LOG1>;
# add yesterday's hits to Tbl hash
foreach $logLine (@logFile)
{ @log = split (/\|/,$logLine,3);
$page = $log[1];
# must create new line if no previous hits
if (!$Tbl{$page}[0])
{ $Tbl{$page}[0] = $page;
for $day (1..$dyinMon)
{ $Tbl{$page}[$day] +=0;
}
$Index{$page} = 'Y';
}
$Tbl{$page}[$logDay]++;
# Count unique ip visitors per group on logday
# $group,$foo = split (/\+/,$page);
# if (!$Ip{$ENV{'REMOTE_ADDR'}}{$group}
# { $Ip{$ENV{'REMOTE_ADDR'}}{$group} = 'Y';
# $Tbl{"~IP\+$group"}[$logDay] ++;
# }
#
}
# write updated Tbl back to file
seek (DAT,0,0);
foreach $page (sort {uc($a) cmp uc($b)} keys %Index)
{ $line = '';
for $day (0..$dyinMon)
{ $line .= "$Tbl{$page}[$day]\|";
}
print DAT "$line\n";
}
truncate (DAT,tell(DAT)); close (DAT);
open (LOG2,">$HITLOG2") || &endIt;
flock (LOG2,2); seek (LOG2,0,0);
print (LOG2 @logFile);
truncate (LOG2,tell(LOG2)); close (LOG2);
truncate (LOG1,0); close (LOG1);
$logDay = $dayStamp;
&changeCfg;
} # end newDay
sub newMonth
{
# Empty last year's month file and update cfg if new month
$datMonth = $month;
$HITDAT = "$HITMON$datMonth.dat";
open (DAT,">$HITDAT") || &endIt;
flock (DAT,2);
truncate (DAT,0); close (DAT);
&changeCfg;
} # end newMonth
sub newCount
{
foreach $x (1..12)
{ if (($cntMonth <= $monthStamp && $x >= $cntMonth && $x <= $monthStamp)
|| ($cntMonth > $monthStamp && ($x <= $monthStamp || $x >= $cntMonth)))
{
$HITDAT = "$HITMON$x.dat";
open (DAT,"<$HITDAT") || &endIt;
flock (DAT,1); seek (DAT,0,0);
while ($hitLine = <DAT>)
{ @hits = split (/\|/,$hitLine);
$page = $hits[0];
foreach $day (1..31)
{ $PageTtl{$page} += $hits[$day];
}
}
close (DAT);
}
}
# Create a new hit.cnt file with this data
while (($pagecode,$pagecount) = each %PageTtl)
{ $addLine = join ("\|",$pagecount,$pagecode,"\n");
push @inFile, $addLine;
}
@outFile = sort {($b =~ /(\d+)/)[0] <=> ($a =~ /(\d+)/)[0]} @inFile;
open (CNT,">$HITCNT") || &endIt;
flock (CNT,2); seek (CNT,0,0);
print (CNT @outFile);
truncate (CNT,tell(CNT));
close (CNT);
if ($monthStamp >= $cntMonth)
{ $year = $yearStamp +0;
} else
{ $year = $yearStamp -1;
}
&makeXbm ("$cntMonth".substr("$year",2,2),4,"$hitmatDir/$SINCEXBM");
$cntFlag = '';
&changeCfg;
} # end newCount
sub changeCfg # update hit cfg file
{
$cfgFile = join ("\|",$logDay,$datMonth,$cntMonth,$cntFlag,$eol);
seek (CFG,0,0);
print (CFG $cfgFile);
truncate (CFG,tell(CFG));
} # end changeCfg
sub backUp # Backup data and delete old backups
{
@bakData = @_;
open (BAK,">$HITBAK") || &endIt;
print (BAK @bakData);
close (BAK);
chmod 0666, $HITBAK;
opendir (BAKDIR,$bakDir);
@bakFiles = grep (/hit\d{3}\.bak/, readdir(BAKDIR));
closedir (BAKDIR);
foreach $bakFile (@bakFiles)
{ if (-M "$bakDir/$bakFile" > $bakMax) { unlink "$bakDir/$bakFile"; }
}
} # end backup
1; # return true

View File

@ -0,0 +1,435 @@
#! /usr/local/bin/perl
#
# HITMAN - The HITMATIC Manager
# Displays and reports various hit count statistics.
#
# Filename: hitman.pl
# Last revised: March 15, 1998
# Copyright: 1997,1998 by Joe DePasquale
# E-Mail: crypt@getcruising.com
# Website: http://www.GetCruising.com
#
########################################################################
# #
# This script and accompanying files may be distributed freely #
# and modified, provided this header with my name, E-Mail address and #
# this notice remain intact. Ownership rights remain with me. You may #
# not sell this script without my approval. #
# #
# This script comes with no guarantee or warranty except for my good #
# intentions. By using this code you agree to indemnify me from any #
# liability that might arise from it's use. #
# #
# There is no technical support for this script, neither am I a #
# professional programmer. Refer to 'HELPME.TXT' for further guidance. #
# #
########################################################################
sub hitman {
@labels = ('Foo','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
@dyinMon = (0,31,28,31,30,31,30,31,31,30,31,30,31);
# Parse form input
read (STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@cgiPairs = split(/&/,$buffer);
foreach $cgiPair (@cgiPairs)
{
($name, $value) = split(/=/,$cgiPair);
$name =~ s/\+/ /g; $value =~ s/\+/ /g;
$name =~ s/%(..)/pack("c",hex($1))/ge;
$value =~ s/%(..)/pack("c",hex($1))/ge;
$Form{$name} .= "\0" if (defined($Form{$name}));
$Form{$name} .= "$value";
}
undef $name; undef $value;
print "Content-type: text/html\n\n";
print "<html>\n<head><title>$headTitle</title></head>\n";
print "$bodyTag\n$bodyTitle<p>\n";
&passtest ($HITPWD);
print qq|<form action="$scriptUrl" method=POST>\n|;
print qq|<input type=hidden name=password value="$Form{'password'}">\n|;
########################################################################
# Case: View Hit stats by year
if ($Form{'hittable'})
{
if ($Form{'detail'} && $Form{'detail'} =~ /^(M|G|P)\|(.+)/)
{
if ($1 eq "M") # month
{ $month = $2;
print "<font size=4><b>Hits By MONTH for: $labels[$month] ";
if ($monthStamp >= $month) {$year = $yearStamp +0;} else {$year = $yearStamp -1;}
print "$year</b></font><br>\n";
if ($year %4 == 0) { $dyinMon[2] = 29; }
# Read all data into hashes
$total = 0;
$HITDAT = "$HITMON$month.dat";
open (DAT,"<$HITDAT") || &endMan ("Read: $HITDAT");
flock (DAT,1); seek (DAT,0,0);
while ($line = <DAT>)
{ @hits = split (/\|/,$line);
$page = $hits[0];
if ($page =~ /(.+)\+(.+)/) { $group =$1; }
foreach $day (1..$dyinMon[$month])
{ $Tbl{$page}{$day} += $hits[$day];
$PageTtl{$page} += $hits[$day];
if ($group)
{ $Tbl{$group}{$day} += $hits[$day];
$GroupTtl{$group} += $hits[$day];
}
$DayTtl{$day} += $hits[$day];
}
$total += $PageTtl{$page};
}
close (DAT);
@pages = sort {$PageTtl{$b} <=> $PageTtl{$a}} keys %PageTtl;
@groups = sort {$GroupTtl{$b} <=> $GroupTtl{$a}} keys %GroupTtl;
print qq|<table border=$border width=50%><tr align=center>\n|;
print qq|<td align=left><input type=reset value="RESET"><br><font color="#009900"><b>Days:</b></font></td>\n|;
foreach $day (1..$dyinMon[$month]) { print qq|<td><font color="#009900"><b>$day</b></font></td>|; }
print qq|<td><font color="#0000FF"><b>Group<br>/Page<br>Totals</b></font></td>|;
# print group hit rows
print qq|\n</tr><tr>\n<td><b>GROUPS:</b></td><td colspan=|,($dyinMon[$month]-1),qq|></td>|;
foreach $group (@groups)
{ print qq|\n</tr><tr align=right>\n<td align=left> <input type=radio name=detail value="G\|$group"><font color="#0000FF">$group</font></td>|;
foreach $day (1..$dyinMon[$month]) { print qq|<td>$Tbl{$group}{$day}</td>|; }
print qq|<td>$GroupTtl{$group}</td>|;
}
# print page hit rows
print qq|\n</tr><tr>\n<td><b>PAGES:</b></td><td colspan=|,($dyinMon[$month]-1),qq|></td>|;
foreach $page (@pages)
{ print qq|\n</tr><tr align=right>\n<td align=left> <input type=radio name=detail value="P\|$page"><font color="#0000FF">$page</font></td>|;
foreach $day (1..$dyinMon[$month]) { print qq|<td>$Tbl{$page}{$day}</td>|; }
print qq|<td>$PageTtl{$page}</td>|;
}
print qq|\n</tr><tr align=right>\n<td nowrap align=center><font color="#009900"><b>Day Totals</b></font></td>|;
foreach $day (1..$dyinMon[$month]) { print qq|<td>$DayTtl{$day}</td>|; }
print qq|<th>$total</th>|;
print qq|\n</tr></table><br>Completed on $timeStamp\n<p>\n|;
}
else # group or page
{
print "<font size=4><b>Hits By ";
if ($1 eq "G")
{ $group = $2;
print "GROUP for &quot;$group&quot;";
} else
{ $page = $2;
print "PAGE for &quot;$page&quot;";
}
print "</b></font><br>\n";
# Read all data into hashes
$total = 0;
foreach $month (1..12)
{ $MonthTtl{$month} =0;
$HITDAT = "$HITMON$month.dat";
open (DAT,"<$HITDAT") || &endMan ("Read: $HITDAT");
flock (DAT,1); seek (DAT,0,0);
while ($line = <DAT>)
{ @hits = split (/\|/,$line);
if ($hits[0] eq $page || $hits[0] =~ /^$group\+/)
{ foreach $day (1..31)
{ $Tbl{$month}{$day} += $hits[$day];
$DayTtl{$day} += $hits[$day];
$MonthTtl{$month} += $Tbl{$month}{$day};
}
}
}
close (DAT);
$total += $MonthTtl{$month};
}
print "<table border=$border><tr align=center>\n";
print "<td align=left><input type=reset value=\"RESET\"><br><font color=\"#009900\"><b>Months:</b></font></td>\n";
# Print col headers and order the months
$month = $monthStamp;
do
{ if ($month == 12) {$month =1;} else {$month++;}
print "<td><input type=radio name=detail value=\"M\|$month\"><br><font color=\"#009900\"><b>$labels[$month]</b><br>";
if ($month > $monthStamp) {$year = $yearStamp -1;} else {$year = $yearStamp +0;}
print "$year</font></td>\n";
push @monthCol, $month;
} until ($month == $monthStamp);
print "<td><font color=\"#0000FF\"><b>Day<br>Totals</b></font></td>";
foreach $day (1..31)
{ print "\n</tr><tr align=right>\n<td><font color=\"#0000FF\"><b>$day</b></font></td>";
foreach $month (@monthCol) { print "<td>$Tbl{$month}{$day}</td>"; }
print "<td>$DayTtl{$day}</td>";
}
print "\n</tr><tr align=right>\n<td nowrap align=center><font color=\"#009900\"><b>Month Totals</b></font></td>";
foreach $month (@monthCol) { print "<td>$MonthTtl{$month}</td>"; }
print "<th>$total</th>";
print "\n</tr></table><br>Completed on $timeStamp\n<p>\n";
}
}
else # default by year
{
print "<font size=4><b>Hits By YEAR as of $timeStamp</b></font><br>\n";
# Read all data into hashes
$total = 0;
foreach $month (1..12)
{ $MonthTtl{$month} =0;
$HITDAT = "$HITMON$month.dat";
open (DAT,"<$HITDAT") || &endMan ("Read: $HITDAT");
flock (DAT,1); seek (DAT,0,0);
while ($line = <DAT>)
{ @hits = split (/\|/,$line);
$page = $hits[0];
if ($page =~ /(.+)\+(.+)/) { $group =$1; }
$Tbl{$month}{$page} =0;
foreach $day (1..31)
{ $Tbl{$month}{$page} += $hits[$day];
}
$PageTtl{$page} += $Tbl{$month}{$page};
$MonthTtl{$month} += $Tbl{$month}{$page};
if ($group)
{ $Tbl{$month}{$group} += $Tbl{$month}{$page};
$GroupTtl{$group} += $Tbl{$month}{$page};
}
}
close (DAT);
$total += $MonthTtl{$month};
}
# Sort by descending page total
@pages = sort {$PageTtl{$b} <=> $PageTtl{$a}} keys %PageTtl;
@groups = sort {$GroupTtl{$b} <=> $GroupTtl{$a}} keys %GroupTtl;
print "<table border=$border><tr align=center>\n";
print "<td align=left><input type=reset value=\"RESET\"><br><font color=\"#009900\"><b>Months:</b></font></td>\n";
# Print col headers and order the months
$month = $monthStamp;
do
{ if ($month == 12) {$month =1;} else {$month++;}
print "<td><input type=radio name=detail value=\"M\|$month\"><br><font color=\"#009900\"><b>$labels[$month]</b><br>";
if ($month > $monthStamp) {$year = $yearStamp -1;} else {$year = $yearStamp +0;}
print "$year</font></td>\n";
push @monthCol, $month;
} until ($month == $monthStamp);
print "<td><font color=\"#0000FF\"><b>Group<br>/Page<br>Totals</b></font></td>";
# print group hit rows
print "\n</tr><tr>\n<td><b>GROUPS:</b></td><td colspan=13></td>";
foreach $group (@groups)
{ print "\n</tr><tr align=right>\n<td align=left><input type=radio name=detail value=\"G\|$group\"><font color=\"#0000FF\">$group</font></td>";
foreach $month (@monthCol) { print "<td>$Tbl{$month}{$group}</td>"; }
print "<td>$GroupTtl{$group}</td>";
}
# print page hit rows
print "\n</tr><tr>\n<td><b>PAGES:</b></td><td colspan=13></td>";
foreach $page (@pages)
{ print "\n</tr><tr align=right>\n<td align=left><input type=radio name=detail value=\"P\|$page\"><font color=\"#0000FF\">$page</font></td>";
foreach $month (@monthCol) { print "<td>$Tbl{$month}{$page}</td>"; }
print "<td>$PageTtl{$page}</td>";
}
# print month subtotal row
print "\n</tr><tr align=right>\n<td nowrap align=center><font color=\"#009900\"><b>Month Totals</b></font></td>";
foreach $month (@monthCol) { print "<td>$MonthTtl{$month}</td>"; }
print "<th>$total</th>";
print "\n</tr></table><p>\n";
} # end default by year
print <<__HITFORM;
<table border=0 width=300>
<tr><td><font color="#0000FF" size=5><b>Hit Tables</b></font></td></tr>
<tr><td>For more detail select any <b>MONTH, GROUP or PAGE</b> button above, then..</td></tr>
<tr><td>PRESS: <input type=submit name=hittable value=" HIT TABLES "></td></tr>
<tr><td><font color="#0000FF" size=5><b>Hit Counter</b></font></td></tr>
<tr><td>For the count <b>DISPLAYED</b> to users or to <b>RESET</b> counter date..</td></tr>
<tr><td>PRESS: <input type=submit value="HIT COUNTER"></td></tr>
</table>
__HITFORM
&manFooter;
} # end case hittable
########################################################################
# Case: Flag to reset hitcount at next daily maintenance
elsif ($Form{'resetcount'})
{
open (LOCK,">$HITFLK") || &endMan ("Write: $HITFLK");
if (!flock (LOCK,2)) { &endMan ("Lock: $HITFLK"); }
# Write new cnt date to CFG
open (CFG,"+<$HITCFG") || &endMan ("Read\/Write: $HITCFG");
flock (CFG,2); seek (CFG,0,0);
$cfgFile = <CFG>;
($logDay,$datMonth,$cntMonth,$cntFlag,$eol) = split (/\|/,$cfgFile);
$cntMonth = $Form{'setmonth'} +0;
$cntFlag = 'Y';
$cfgFile = join ("\|",$logDay,$datMonth,$cntMonth,$cntFlag,$eol);
seek (CFG,0,0);
print (CFG $cfgFile);
truncate (CFG,tell(CFG)); close (CFG);
close (LOCK);
print "<b>Hit Counter</b> will be reset at next daily maintenance<br>\n to <b>$labels[$cntMonth] 1, $year</b>\n<p>\n";
&hitCount;
&manFooter;
} # end resetcount
########################################################################
# Default Case: Display hitcount
else
{ &hitCount;
&manFooter;
} # end default
} # end hitman
########################################################################
sub hitCount # Display hitcount
{
open (CNT,"<$HITCNT") || &endMan ("Read: $HITCNT");
flock (CNT,1); seek (CNT,0,0);
@hitFile = <CNT>;
close (CNT);
print "<table border=$border><tr>\n<th>HITS</th><th>by PAGECODE</th>\n";
$hitTtl =0;
for ($x=0; $x<=$#hitFile; $x++)
{ print "\n</tr><tr>\n";
($count,$code,$eol) = split (/\|/,$hitFile[$x]);
if ($code =~/\+/)
{ ($group,$page) = split (/\+/,$code);
$GroupTtl{$group} += $count;
}
print "<td align=right>$count</td><td>$code</td>";
$hitTtl = $hitTtl + $count;
}
print "\n</tr></table><p>\n";
if ($group)
{ print "<table border=$border><tr>\n<th>HITS</th><th>by GROUP</th>\n";
@groups = sort {$GroupTtl{$b} <=> $GroupTtl{$a}} keys %GroupTtl;
foreach $group (@groups)
{ print "\n</tr><tr>\n";
print "<td align=right>$GroupTtl{$group}</td><td>$group</td>";
}
print "\n</tr></table><p>\n";
}
open (CFG,"<$HITCFG") || &endMan ("Read: $HITCNT");
flock (CFG,1); seek (CFG,0,0);
$cfgFile = <CFG>;
close (CFG);
($logDay,$datMonth,$cntMonth,$cntFlag,$eol) = split (/\|/,$cfgFile);
print "<b>Total: $hitTtl hits for $x pages since $labels[$cntMonth] 1, ";
if ($monthStamp >= $cntMonth) {$year = $yearStamp +0;} else {$year = $yearStamp -1;}
print "$year</b>\n<br>Completed at $timeStamp\n<p>\n";
print qq|<table border=0 width=300>\n<tr><td><font color="#0000FF"><font size=5><b>Hit Counter</b></font></font></td</tr>\n|;
print qq|<tr><td>To reset the counter and starting date, select a starting <b>MONTH</b> and press <b>CHANGE</b>. A new image of the <b>SINCE</b> date will also be created.</td></tr>\n|;
print qq|<tr><td>SINCE: <select name=setmonth size=1>\n|;
for $x (1..12)
{ if ($x == $cntMonth)
{ print "<option value=$x selected>$labels[$x]\n";
} else
{ print "<option value=$x>$labels[$x]\n";
}
}
print qq|</select> \n<input type=submit name=resetcount value="CHANGE"> \n|;
print qq|<input type=submit value=" CLEAR "></td></tr>\n|;
print qq|<tr><td><font color="#0000FF"><font size=5><b>Hit Tables</b></font></font></td></tr>\n|;
print qq|<tr><td>For ALL hits by <b>MONTH, GROUP or PAGE</b></td></tr>\n|;
print qq|<tr><td>PRESS: <input type=submit name=hittable value=" HIT TABLES "></td></tr>\n</table>\n|;
} # end hitCount
sub manFooter # print hitman footer
{
print qq|</form><p>\n<a href="$exitUrl">Exit $headTitle</a>\n|;
print qq|<p><font size=2><i><b>HITMATIC</b> is one of <a href="http://www.GetCruising.com/crypt" target="_top">Joe's CGI Scripts From The Crypt!</a></i></font>\n|;
print qq|<p>\n</body></html>\n|;
} # end manFooter
sub passtest # password routines
{
$PASSFILE = $_[0];
if (-s $PASSFILE)
{ if ($Form{'password'})
{ open (PASS,"<$PASSFILE");
$passcode = <PASS>;
close (PASS);
chop ($passcode) if $passcode =~ /\n$/;
$lp = length $Form{'password'};
$salt = substr($Form{'password'},$lp-2,1).substr($Form{'password'},1,1);
if ($passcode eq crypt ($Form{'password'},$salt))
{ if ($Form{'newpassword'})
{ $lp = length $Form{'newpassword'};
if ($Form{'newpassword'} =~ /^\w{$lp}\b/)
{ $Form{'password'} = $Form{'newpassword'};
$salt = substr($Form{'password'},$lp-2,1).substr($Form{'password'},1,1);
$passcode = crypt ($Form{'password'},$salt);
open (PASS,">$PASSFILE");
print PASS "$passcode";
close (PASS);
} else
{ &passbox ("Bad choice, Creep!!");
}
}
} else
{ &passbox ("Wrong, Creep!!");
}
} else
{ &passbox ("What's the Password, Creep?");
}
} else
{ &endMan ("Password File $PASSFILE Not Found");
}
}
sub passbox
{
print <<__PASSBOX;
<form action="$scriptUrl" method="POST">
<input type=hidden name=manager value=1><table border=4>
<tr><th colspan=2><font color="#FF0000"><b><blink>$_[0]</blink></b></font></th></tr>
<tr><th> Enter Password:</td><th><input type=password name=password size=12 maxlength=12></th></tr>
<tr><th>Change Password:</td><th><input type=text name=newpassword size=12 maxlength=12></th></tr>
<th colspan=2><input type=submit value=" DO IT! "><input type=reset value=" CLEAR "></th></tr>
</table><br>
Password must be 4 to 12 alpha-numeric characters.</form>
<p></body></html>
__PASSBOX
exit;
} # end passbox
sub endMan # Error handling for manager scripts
{
print "<font color=\"#FF0000\"><b>ERROR:</font><br>$_[0]</b>\n<p>";
if ($!) { print "Server made a Boo-Boo! $!\n"; }
else { print "Use your browser's [BACK] button and try again.\n"; }
print "<p></body></html>\n";
exit;
} # end endMan
1; # return true

View File

@ -0,0 +1,223 @@
#! /usr/local/bin/perl -w
#
# HITMATIC
# Maintains counts for a page or all pages and logs accesses.
# Can optionally output the count to the browser.
#
# Filename: hitmat.cgi
# Last revised: July 08, 1998
# Copyright: 1996-1998 by Joe DePasquale
# E-Mail: crypt@getcruising.com
# Website: http://www.GetCruising.com
#
########################################################################
# #
# This script and accompanying files may be distributed freely #
# and modified, provided this header with my name, E-Mail address and #
# this notice remain intact. Ownership rights remain with me. You may #
# not sell this script without my approval. #
# #
# This script comes with no guarantee or warranty except for my good #
# intentions. By using this code you agree to indemnify me from any #
# liability that might arise from it's use. #
# #
# There is no technical support for this script, neither am I a #
# professional programmer. Refer to 'HELPME.TXT' for further guidance. #
# #
########################################################################
#
# 2. CONFIGURE SCRIPT -
#
# Change these sample paths to the actual paths on your server:
# Your Unix system date command
$dateCmd = '/bin/date';
# Unix path to hitmat directory
$hitmatDir = '/users/largo1/czo/cvslargo/www/cgi-bin/czo/hit';
# URL path to hitmat.cgi
$scriptUrl = 'http://asim.lip6.fr/cgi-bin/czo/hit/hitmat.cgi';
# URL path to hitmat directory
$hitmatUrl = 'http://asim.lip6.fr/cgi-bin/czo/hit/';
# Go to this URL when exiting manager
$exitUrl = 'http://asim.lip6.fr/';
# Log will record hit but exclude domain names matching this tail
$myTail = '.li.fr';
# OPTIONAL - You can edit these variables if desired:
# File Maintenance is triggered each day when the FIRST HIT between
# midnight and $trigHour is received. This will 1) swap 'hit1.log' and
# 'hit2.log' and 2) initialize a 'hitx.dat' file on the first day of a
# month. You can use any 24-hour time from 1 (1 AM) to 23 (11 PM).
$trigHour = 06;
$headTitle = "HITMATIC Website Counter System";
$bodyTag = qq|<body bgcolor="#FFFFFF" text="#000099" link="#0000FF" alink="#FFFF00" vlink="#990000">|;
$bodyTitle = qq|i><b><font size=5><font color="#0000FF">HIT</font><font color="#FF9900">MATIC</font></font></b></i>|;
# Change the table border size? (0 = no border)
$border = 0;
# If you DON'T want to backup the hit*.dat files, set $bakFlag to 'N',
# otherwise set the correct values in the 'if' loop ..
$bakFlag = 'Y';
if ($bakFlag eq 'Y')
{ $bakTime = 1; # days btwn backups
$bakMax = 7; # days to keep backups
# Unix path to backup directory
$bakDir = '/usr/home/you/htdocs/bak';
# END OF INSTALLATION - SHOULD NOT CHANGE STUFF BELOW THIS LINE
########################################################################
chop ($jDate = `$dateCmd +"%j"`);
$HITBAK = "$bakDir/hit$jDate.bak";
}
chop ($dayStamp = `$dateCmd +"%e"`); $dayStamp =~ s/\s*//g;
chop ($hourStamp = `$dateCmd +"%H"`);
chop ($timeStamp = `$dateCmd +"%a %D %H%M%Z"`);
chop ($dateStamp = `$dateCmd +"%Y%m%d"`);
$yearStamp = substr ($dateStamp,0,4);
$monthStamp = substr ($dateStamp,4,2);
$month = $monthStamp +0;
$HITCFG = "$hitmatDir/hit.cfg";
$HITCNT = "$hitmatDir/hit.cnt";
$HITDAT = "$hitmatDir/hit$month.dat";
$HITFLK = "$hitmatDir/hit.flk";
$HITLOG1 = "$hitmatDir/hit1.log";
$HITLOG2 = "$hitmatDir/hit2.log";
$HITMON = "$hitmatDir/hit";
$HITXBM = "$hitmatDir/hit.xbm";
$SINCEXBM = "since.xbm";
########################################################################
# Read GET or POST input and setup stuff
if (-e "./referer.pl")
{ require "./referer.pl";
&referer;
}
if ($ENV{'QUERY_STRING'} eq 'manager' || $ENV{'REQUEST_METHOD'} eq 'POST')
{ require "./hitman.pl";
require "./hitxbm.pl";
$HITPWD = "$hitmatDir/hitmat.pwd";
&hitman;
exit;
} elsif ($ENV{'QUERY_STRING'} =~ /(\S+?)(\+(\S))?=(\S+?)(&.*|$)/)
{ $pagecode =$1; $group =$3; $command =$4;
if ($group) { $pagecode = "$group\+$pagecode"; }
} else
{ &endIt;
}
open (LOCK,">$HITFLK") || &endIt;
if (!flock (LOCK,2)) { &endIt; }
# Daily maintenance if trigger time
if ($hourStamp < $trigHour)
{ require "./hitcfg.pl";
&checkCfg;
}
# Add hit to main counter
open (CNT,"+<$HITCNT") || &endIt;
flock (CNT,2); seek (CNT,0,0);
@inFile = <CNT>;
$recNbr = 0; $foundFlag = 'N';
while (($recNbr <= $#inFile) && ($foundFlag eq 'N'))
{ ($count,$code,$eol) = split(/\|/,$inFile[$recNbr]);
if ($code eq $pagecode)
{ if ($count < 999999) {$count++;} else {$count =1;}
$inFile[$recNbr] = join ("\|",$count,$pagecode,"\n");
$foundFlag = 'Y';
}
$recNbr++;
}
if ($foundFlag eq 'N') # new page
{ $count =1;
$addLine = join ("\|",$count,$pagecode,"\n");
push @inFile, $addLine;
}
@outFile = sort {($b =~ /(\d+)/)[0] <=> ($a =~ /(\d+)/)[0]} @inFile;
seek (CNT,0,0);
print (CNT @outFile);
truncate (CNT,tell(CNT)); close (CNT);
# Make the XBM image according to COMMAND
if ($command eq "PAGE")
{ require "./hitxbm.pl";
&makeXbm ($count,6,$HITXBM);
}
elsif ($command eq "GROUP")
{ require "./hitxbm.pl";
open (CNT,"<$HITCNT") || &endIt;
flock (CNT,1); seek (CNT,0,0);
@inFile = <CNT>;
close (CNT);
$groupTtl = 0;
foreach $inLine (@inFile)
{ if ($inLine =~ /^\d+\|$group\+/)
{ ($count,$code,$eol,) = split(/\|/,$inLine);
$groupTtl += $count;
}
}
&makeXbm ($groupTtl,6,$HITXBM);
}
elsif ($command eq "SITE")
{ require "./hitxbm.pl";
open (CNT,"<$HITCNT") || &endIt;
flock (CNT,1); seek (CNT,0,0);
@inFile = <CNT>;
close (CNT);
$siteTtl = 0;
foreach $inLine (@inFile)
{ ($count,$code,$eol,) = split(/\|/,$inLine);
$siteTtl += $count;
}
&makeXbm ($siteTtl,6,$HITXBM);
}
elsif ($command eq "NONE")
{ open (XBM,">$HITXBM");
flock (XBM,2); seek (XBM,0,0);
print (XBM "#define hit_width 1\n");
print (XBM "#define hit_height 1\n");
print (XBM "static char hit_bits[] = { 0x00 };\n");
truncate (XBM,tell(XBM));
close (XBM);
}
# Send the XBM image to Stdout
if ($command ne "IMG")
{ print "Content-type: image/x-xbitmap\n\n";
print `cat $HITXBM`;
}
# Record hit in the log
$hitLine = join ("\|",$timeStamp,$pagecode,$command,$banNbr,$ENV{'REMOTE_HOST'},$ENV{'HTTP_USER_AGENT'});
if ($ENV{'HTTP_REFERER'} !~ /$myTail/i)
{ $hitLine .= "\|$ENV{'HTTP_REFERER'}";
}
if (open (LOG,">>$HITLOG1"))
{ flock (LOG,2); seek (LOG,0,2);
print (LOG "$hitLine\n");
close (LOG);
}
close (LOCK);
exit;
# end main program
######################################################################
sub endIt # exit on error
{ exit;
} # end endIt

View File

@ -0,0 +1 @@
raPko.wpxNfW2

View File

@ -0,0 +1,72 @@
#! /usr/local/bin/perl
#
# HITXBM.PL - Module required by hitmat.cgi
#
# Copyright: 1996,1997,1998 by Joe DePasquale
# Last revised: January 28, 1997
# E-Mail: crypt@getcruising.com
# Website: http://www.GetCruising.com
#
###########################################################################
# The bitmap data file @gened is used with the author's permission.
# number.xbm (C) 1994 Eugene E. Devereaux <gened@halcyon.com>
# Adapted for UUNET (NCSA httpd) by David MacKenzie <djm@va.pubnix.com>
###########################################################################
# Sub: Make an x-bitmap image of the count
sub makeXbm
{
($printTtl,$digits,$XBM) = @_;
$printTtl = substr ($printTtl,0);
$pad = $digits - length ($printTtl);
$xbmWidth = $digits * 16;
for ($x=0; $x<$digits; $x++)
{ if ($x<$pad) { $printTtl = "0".$printTtl; }
push @xbmNbr, substr ($printTtl,$x,1);
}
# assign bitmap byte octals for numbers 0..9 to list of lists
@gened = (
['00','00','e0','07','f0','0f','30','0c','30','0c','30','0c','30','0c','30','0c',
'30','0c','30','0c','30','0c','30','0c','30','0c','f0','0f','e0','07','00','00'],
['00','00','80','01','c0','01','e0','01','80','01','80','01','80','01','80','01',
'80','01','80','01','80','01','80','01','80','01','e0','07','e0','07','00','00'],
['00','00','e0','07','f8','1f','18','18','18','18','18','1c','00','0e','00','07',
'80','03','c0','01','e0','00','70','00','38','00','f8','1f','f8','1f','00','00'],
['00','00','f0','07','f0','0f','30','0c','00','0c','00','0c','00','0c','c0','0f',
'c0','0f','00','0c','00','0c','00','0c','30','0c','f0','0f','f0','07','00','00'],
['00','00','00','06','00','0f','80','0f','c0','0d','e0','0c','70','0c','f0','0f',
'f0','0f','00','0c','00','0c','00','0c','00','0c','00','0c','00','0c','00','00'],
['00','00','e0','0f','f0','0f','30','00','30','00','30','00','30','00','f0','07',
'e0','0f','00','0c','00','0c','00','0c','30','0c','f0','07','e0','03','00','00'],
['00','00','20','00','30','00','30','00','30','00','30','00','30','00','f0','07',
'f0','0f','30','0c','30','0c','30','0c','30','0c','f0','0f','e0','0f','00','00'],
['00','00','f0','0f','f0','0f','30','0c','30','0c','00','06','00','03','00','03',
'80','01','80','01','c0','00','c0','00','60','00','60','00','60','00','00','00'],
['00','00','e0','07','f0','0f','30','0c','30','0c','30','0c','60','06','c0','03',
'c0','03','60','06','30','0c','30','0c','30','0c','f0','0f','e0','07','00','00'],
['00','00','e0','07','f0','0f','30','0c','30','0c','30','0c','e0','0f','c0','0f',
'00','0e','00','0e','00','07','80','03','c0','01','e0','00','60','00','00','00'],
);
# create image file of printTtl
open (XBM,">$XBM");
flock (XBM,2); seek (XBM,0,0);
print (XBM "#define hit_width $xbmWidth\n");
print (XBM "#define hit_height 16\n");
print (XBM "static char hit_bits[] = {\n");
for ($y=0; $y<=30; $y=$y+2)
{ foreach $x (@xbmNbr)
{ print (XBM "0x$gened[$x][$y],0x$gened[$x][$y+1],");
}
print (XBM "\n");
}
print (XBM "};\n");
truncate (XBM,tell(XBM)); close (XBM);
} # end makeXbm
1; # return true

View File

@ -0,0 +1,185 @@
Installation and Usage
for HITMATIC Website Hit Statistics System
This copy of HITMAT.ZIP contains the latest revised
edition with all required files for a complete installation.
Revision Date: hitmat.zip - July 8, 1998
Copyright: 1996,1997,1998 by Joe DePasquale
E-Mail: crypt@getcruising.com
Website: http://www.GetCruising.com
========================================================================
This application is for Unix web servers running Perl 5.0 or higher.
Additional documentation is available at http://www.GetCruising/crypt
helpme.txt - How to install Perl scripts on a Unix server.
whatsnew.txt - Revision history for all 'CGI Scripts from the Crypt'.
Also visit the "Users' Self-Support Forum" to post questions and
answers, especially if you have some extra time, knowledge and
a desire to help some other poor lost souls!
THERE IS *NO* FREE *NOR* FEE-BASED TECHNICAL SUPPORT FOR THESE SCRIPTS!
Due to extremely limited time, E-Mail with technical support
questions WILL NOT BE ANSWERED! Please use the available resources
here and elsewhere on the WWW to solve problems.
E-Mail genuine bug reports to: crypt@getcruising.com
========================================================================
WHAT IT DOES:
HITMATIC can become as complex and valuable as you wish. At its simplest,
it can display the hitcount for a page to your visitors. At your option,
it can also be configured for complete website tracking and analysis.
Input to the script comes from special image tags that you place on each
web page that you want included in the system. When a browser loads
one of these pages it expects to receive a graphic from the URL in the
tag. Instead, the URL runs HITMATIC which counts and categorizes the hit,
does some maintenance stuff and finally creates the graphic (an X-Bitmap)
and outputs it to the browser.
Why X-Bitmap? Of the 3 standard image formats that web browsers can
display (.jpg, .gif and .xbm) this is the only one that uses an ASCII
file format and can be created by simple math. The overhead of having
to include a compiled jpg or gif generator is avoided, and HITMATIC
uses resources to calculate stats rather than displays pretty fonts.
To learn more about X-Bitmaps, read the comments in 'hitxbm.pl'.
'hit1.log' and 'hit2.log' save todays' and yesterday's hit data with
one line per hit (date, time, $pagecode, $command, user's IP address,
cookies and referring page). 'hitcfg.pl' runs daily file maintenance,
'hitxbm.pl' creates the XBM-BITMAP images of the hitcounts.
Twelve files numbered hit1.dat - hit12.dat which each hold hit
counts by day and pagecode for one month.
The manager module (hitman.pl) gives you a choice of statistical tables
showing counts by month, by page, by group or full year.
The 'By YEAR' table starts 12 months ago and ends at the end of current
month. The grid shows the total hits by month for each group and each
page, ranked most to least popular. 'By MONTH' shows the hits for one
month on a daily basis. 'By PAGE' shows the hits for one page on a yearly
basis.
The HIT COUNTER shows the current hit count for each page since last
reset. You can reset the counter to any month in the pop-up box, and
HITMATIC will recalculate hits from data in the monthly hit files also
making a new 'since.xbm' image of the month and date which can be
displayed.
Daily file maintenance is run when the first visitor of the day causes
HITMATIC to run. Several things happen: 'hit1.log' is read and all hits
for the previous day are added to the monthly data files. If it's the
first day of a new month, last year's month file is emptied. 'hit1.log'
is renamed 'hit2.log', yesterday's 'hit2.log' is emptied and renamed
'hit1.log'. Finally, if a new hit count was requested since the last
maintenance, the 'hit.cnt' file is recalculated.
HITMATIC uses the Perl 'flock' function to prevent simultaneous
changes (corruption) of data files.
========================================================================
INSTALLATION:
1. SETUP YOUR FILES -
Open 'hit.cfg' in a text editor. The default file is '1|1|1|N|'. Change
the first '1' to current day-of-month (1-31), the second '1' to current
month (1-12). Leave the other fields as is and save the file. Hereafter,
these values will be read, changed and written by the script(s) so no
further editing should be required.
Add a reference to each HTML page to be counted, following this example:
<img
src="http://yourserver.com/path/to/cgi-bin/hitmat.cgi?PAGECODE+GROUPCODE=COMMAND">
You will need to make these substitutions --
'PAGECODE' is a unique name (with NO SPACES) for the page being counted.
It can be real or symbolic (albert/home.html, links, page1, etc.).
'GROUPCODE' is optional but you can subdivide your hitcounts into
subject areas. Use a SINGLE letter or number for each group.
'COMMAND' tells the script which count to output on the page --
'SITE' - display total hits to website,
'GROUP' - display hits for a group,
'PAGE' - display hits for a page, or
'NONE' - display nothing, i.e. sends a null bitmap image.
Example of a full site hitcount displayed on my 'index.html' page:
<img src="./cgi-bin/hitmat.cgi?index+G=SITE" width=96 height=16
align=top border=0> Pages Served Since <img src="./hit/since.xbm"
width=64 height=16 border=0 align=top alt="Last Reset">
Note the PAGECODE is 'index', GROUPCODE is 'G' and COMMAND is 'SITE'.
As in the example, you can include an image tag for 'since.xbm'
to display the date (MMYY) when counter was last reset.
Adding width and height tags allows the page to load quicker --
For 'SITE, 'GROUP' and 'PAGE' use 'width=96 height=16',
For 'NONE' use 'width=0 height=0',
For 'since.xbm' use 'width=64 height=16'.
2. CONFIGURE THE SCRIPT -
Open the main script file 'hitmat.cgi' in a text editor and change
the sample paths in the "CONFIGURE THE SCRIPT" section,
following the instructions found there.
3. UPLOAD FILES AND SET (CHMOD) PERMISSIONS -
All files should be uploaded in ASCII mode (yes even the .xbm's).
Place 'hitmat.cgi' (755), 'hitcfg.pl' (644), 'hitman.pl' (644)
and 'hitxbm.pl' (644) into your main cgi directory.
Create a directory named 'hitmat' (755) and place 'hit.cfg' (666),
'hit.cnt' (666), 'hit.flk' (666), 'hit1.log' (666), 'hit2.log' (666),
'hit.xbm' (666), 'hitmat.pwd' (666) plus the 12 files 'hit1.dat'
thru 'hit12.dat' (666) there.
If you enable the back-up option, create an empty directory named
'bak' (777) which can be shared with my other scripts that make
back-up files. This directory MUST be world-writeable!
========================================================================
HOW TO USE IT:
If set up correctly (!) just sit back and watch (?) as the script
and your visitors do all the work.
To RUN HITMATIC MANAGER, use 'manager' as a query-string.
Examples -
http://www.GetCruising.com/cgibin/hitmat.cgi?manager
The response should be the password authorization form. The
initial password is 'password'. Of course you should change it soon
to something unique by entering a new password in the
'Change Password' box.
The default HIT TABLE is 'By YEAR' starting 12 months ago and ending at
the end of current month. To switch to detailed displays 'By MONTH',
'By GROUP' or 'By PAGE', select a radio button and press 'HIT TABLES'.
You can switch between displays in the same way.
Select 'HIT COUNTER' for a list of current hit count for each page
since last reset. To reset the counter to the beginning of a month,
select a starting month in the pop-up box, then press 'CHANGE'.
========================================================================
What are you reading this for? DO IT!

View File

@ -0,0 +1,20 @@
#define hit_width 64
#define hit_height 16
static char hit_bits[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xe0,0x07,0xf0,0x07,0xe0,0x07,0xf0,0x0f,
0xf0,0x0f,0xf0,0x0f,0xf0,0x0f,0xf0,0x0f,
0x30,0x0c,0x30,0x0c,0x30,0x0c,0x30,0x0c,
0x30,0x0c,0x00,0x0c,0x30,0x0c,0x30,0x0c,
0x30,0x0c,0x00,0x0c,0x30,0x0c,0x00,0x06,
0x30,0x0c,0x00,0x0c,0xe0,0x0f,0x00,0x03,
0x30,0x0c,0xc0,0x0f,0xc0,0x0f,0x00,0x03,
0x30,0x0c,0xc0,0x0f,0x00,0x0e,0x80,0x01,
0x30,0x0c,0x00,0x0c,0x00,0x0e,0x80,0x01,
0x30,0x0c,0x00,0x0c,0x00,0x07,0xc0,0x00,
0x30,0x0c,0x00,0x0c,0x80,0x03,0xc0,0x00,
0x30,0x0c,0x30,0x0c,0xc0,0x01,0x60,0x00,
0xf0,0x0f,0xf0,0x0f,0xe0,0x00,0x60,0x00,
0xe0,0x07,0xf0,0x07,0x60,0x00,0x60,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

View File

@ -0,0 +1,30 @@
#LogCount v3.8 link count and redirect
sub do_link {
($scrap, $lnkNumb) = split(/\=/,$query_string);
if (!open (COUNT, "+<$log_path$lnks_name")) {$err = "Links File Access"; &err_log;}
eval"flock(COUNT,2)";
@lns = <COUNT>;
$cnts = 0;
foreach $ln (@lns){
@TL = split(/\|/,$ln);
if ($TL[0] eq $lnkNumb) {
$the_link = $TL[1];
if ($pn eq "l") {
$TL[2]++;
$lns[$cnts] = "$TL[0]|$TL[1]|$TL[2]\n";
seek(COUNT,0,0);
print COUNT @lns;
last;
} }
$cnts++;
}
eval"flock(COUNT,8)";
close(COUNT);
if (!($the_link eq "")) {print "Location: $the_link\n\n";}
else {
print "Content-type: text/html\n\n"; print qq~<html><head><meta name="author" content="Ron F Woolley 1998-99 - www.dtp-aus.com"><meta HTTP-EQUIV="Pragma" CONTENT="no-cache"><title>Error Response</title></head><body bgcolor="#FFFFFD" text="#333333" link="#0000CC"><center><p>&nbsp;</p><table cellpadding="1" cellspacing="3" border="0"><tr bgcolor="#F5F5FF"><td><b><font face="verdana,arial,geneva,helvetica" size="3">&nbsp;Link <font color="#CC0000">Error Response</font></font></b></td></tr><tr><td align=center bgcolor="#F5F5F5"><font size="2" face="arial,helvetica,geneva"><p><strong>&nbsp;<br>The link you requested cannot be found.</strong></p><p>&nbsp;Please report this error to the <a href="$webmstr">webmaster</a>. <em>Thank you&nbsp;</em></p></font></td></tr><tr bgcolor="#666666"><td align=center><font size="2" face="arial,helvetica,geneva"><em><font color="#FFFFFF"><b>return with your</b></font></em><font color="#FFFFFF"><b> Back Arrow</b></font></font></td></tr></table></center></body></html>~;
exit;
}
exit;
}
1; #line must remain last and as is

View File

@ -0,0 +1,19 @@
# LogCount v3.8 error logging
sub err_logs {
if ((-e "$log_path"."$ENV{'REMOTE_ADDR'}.tf") || (-s "$log_path$badlog_name") > 2000000 || !open (LOG, ">>$log_path$badlog_name")) {exit;}
open (LOGG, ">$log_path"."$ENV{'REMOTE_ADDR'}.tf") || exit;
eval"flock(LOG, 2)";
my $trim = date_time(1)."|$err|$ENV{'HTTP_REFERER'}|$ENV{'REMOTE_ADDR'}";
$trim = substr($trim,0,150);
print LOG "$trim\n";
eval"flock(LOG, 8)";
close(LOG);
close(LOGG);
if (!($pn eq "l")) {&sendFile($img_url."trans.gif", "image/gif");}
else {print "Content-type: text/html\n\n";
print "Pages are copyright. Remote link access refused!<br>Please link via the actual on-site page\n";}
sleep 10;
unlink ("$log_path"."$ENV{'REMOTE_ADDR'}.tf");
exit;
}
1; #line must remain last and as is

View File

@ -0,0 +1,42 @@
#### adding/subtracting zeros alters length of visible counters ---#
$iszeros = "000000";
#### Select British ("0"), US ("1"), Internat ("2") date pattern --#
$dtUS = "2";
#### An array of accepted referers domain names / IP#s ------------#
@referers = ('armandino.free.fr','www-asim.lip6.fr', );
#### An array of rejected domain names / IP#s ---------------------#
$rjct = "|myfoobars.com|000.000.000.000|wallies.edu.ca/~bloggs|";
#### Path to Records and Counter Images, SEE readme.txt file ------#
$gmt_pth = "$log_path/gmtset.pl";
#$log_path = "counters/"; # - with forward slash
$count_name = "hitcount.t";
$log_name = "hitlog.t";
$lnks_name = "hitlnk.t";
$badlog_name = "hitbadlog.t";
$def_pge = "index";
$iwid = 13;
$ihgt = 17;
$ssi_zro = 1;
#### PATH OR URL to NON SSI img display images --------------------#
#-- this can be the same as the $ssi_url value! (see readme)
# $img_url = "counters/"; # PATH - with forward slash
#$img_url = "http://yourdomain.name/ssi_img/"; # URL - with forward slash
#### URL to the images for SSI img display (see readme) -----------#
$ssi_url = "http://www-asim.lip6.fr/ssi/img/"; # - with forward slash
#### SSI Output (0 = hidden (blank), 1 = Text, 2 = Images ---------#
$ssi_img = 1;
#### E-Mail address of the Webmaster ------------------------------#
$webmstr = "mailto:Olivier.Sirol\@lip6.fr?subject=Link_Error";
#### Show Referer Domain Names, SEE readme.txt file ---------------#
$showDoms = "1";
1; # this line MUST remain in all 'require' files.

View File

@ -0,0 +1,6 @@
#### value = GMT at your locality, in seconds (cen setup via admin!)--------#
#### ie (5hrs AHEAD) = 5X60X60 = 18000, (3.5hrs BEHIND) = -3.5X60X60 = -12600
$gmtPlusMinus = 7200;
1; # this line must remain in all 'require' files.

View File

@ -0,0 +1,17 @@
2000/05/26 15:06:52|bad referrer, off-site access denied||132.227.103.10
2000/05/26 15:07:36|bad referrer, off-site access denied||132.227.103.10
2000/05/26 15:09:31|bad referrer, off-site access denied||132.227.103.10
2000/05/26 15:09:31|bad referrer, off-site access denied||132.227.103.10
2000/05/26 15:09:41|bad referrer, off-site access denied||132.227.103.10
2000/05/26 15:09:54|bad referrer, off-site access denied||132.227.103.10
2000/05/26 15:10:48|bad referrer, off-site access denied||132.227.103.10
2000/05/26 15:10:48|bad referrer, off-site access denied||132.227.103.10
2000/05/26 15:10:58|bad referrer, off-site access denied||132.227.103.10
2000/06/05 12:12:40|bad referrer, off-site access denied||132.227.103.10
2000/06/05 12:13:27|bad referrer, off-site access denied||132.227.103.10
2000/06/05 13:44:28|bad referrer, off-site access denied||132.227.103.10
2000/06/05 14:42:45|bad referrer, off-site access denied||132.227.103.10
2000/06/05 14:43:23|bad referrer, off-site access denied||132.227.103.10
2000/06/05 14:43:38|bad referrer, off-site access denied||132.227.103.10
2000/06/05 14:44:24|bad referrer, off-site access denied||132.227.103.10
2000/06/05 14:45:02|bad referrer, off-site access denied||132.227.103.10

View File

@ -0,0 +1 @@
widgets|http://www.widgetstuff.net/|345

View File

@ -0,0 +1,10 @@
2000/05/26 14:42:39, 132.227.103.10, /, Mozilla/4.7 [en] (WinNT; I), chantaco
2000/05/26 15:01:38, 132.227.103.10, /, Mozilla/4.7 [en] (WinNT; I), chantaco
2000/05/26 15:02:39, 132.227.103.10, /, Mozilla/4.7 [en] (WinNT; I), chantaco
2000/05/26 15:11:25, 132.227.103.10, /, Mozilla/4.7 [en] (WinNT; I), chantaco
2000/05/26 16:09:38, 132.227.103.10, /, Mozilla/4.7 [en] (WinNT; I), chantaco
2000/05/26 16:11:14, 132.227.103.10, /, Mozilla/4.7 [en] (WinNT; I), chantaco
2000/05/26 16:20:05, 132.227.103.10, /, Mozilla/4.7 [en] (WinNT; I), chantaco
2000/05/27 12:05:15, 212.27.40.168, /, Mozilla/4.7 [en] (WinNT; I), paris11-nas1-40-168.dial.proxad.net
2000/06/05 14:46:26, 132.227.103.10, /, Mozilla/4.7 [en] (WinNT; I), chantaco
2000/06/05 14:46:29, 132.227.103.10, /, Mozilla/4.7 [en] (WinNT; I), chantaco

View File

@ -0,0 +1 @@
a.M5r8pTqIbSw

View File

@ -0,0 +1,23 @@
#### Path to Records and Counter Images, SEE readme.txt file ------#
$lookcfg_pth = "$log_path/lookcnfg.pl";
$pwrd_name = "look.pwd";
$grf1_url = "$ssi_url"."grf0.gif";
$grf0_url = "$ssi_url"."grf1.gif";
#### URL of the prefered return page (Home) -----------------------#
$hm_url = "http://armandino.free.fr/";
#### URL of the LOGLOOK.CGI log viewer script ---------------------#
$logScrpt = "http://www-asim.lip6.fr/cgi-bin/czo/lc/cgi-bin/loglook.cgi";
#### URL of the LOGCNT.CGI counter script -------------------------#
$countScrpt = "http://www-asim.lip6.fr/cgi-bin/czo/lc/cgi-bin/logcnt.cgi";
#### Enable display of last 7 days ("1") --------------------------#
$shwDays7 = "1";
#### Enter a Password or leave blank(""), SEE readme.txt file -----#
$theword = "log";
1; # this line MUST remain in all 'require' files.

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

View File

@ -0,0 +1,30 @@
#LogCount v3.8 link count and redirect
sub do_link {
($scrap, $lnkNumb) = split(/\=/,$query_string);
if (!open (COUNT, "+<$log_path$lnks_name")) {$err = "Links File Access"; &err_log;}
eval"flock(COUNT,2)";
@lns = <COUNT>;
$cnts = 0;
foreach $ln (@lns){
@TL = split(/\|/,$ln);
if ($TL[0] eq $lnkNumb) {
$the_link = $TL[1];
if ($pn eq "l") {
$TL[2]++;
$lns[$cnts] = "$TL[0]|$TL[1]|$TL[2]\n";
seek(COUNT,0,0);
print COUNT @lns;
last;
} }
$cnts++;
}
eval"flock(COUNT,8)";
close(COUNT);
if (!($the_link eq "")) {print "Location: $the_link\n\n";}
else {
print "Content-type: text/html\n\n"; print qq~<html><head><meta name="author" content="Ron F Woolley 1998-99 - www.dtp-aus.com"><meta HTTP-EQUIV="Pragma" CONTENT="no-cache"><title>Error Response</title></head><body bgcolor="#FFFFFD" text="#333333" link="#0000CC"><center><p>&nbsp;</p><table cellpadding="1" cellspacing="3" border="0"><tr bgcolor="#F5F5FF"><td><b><font face="verdana,arial,geneva,helvetica" size="3">&nbsp;Link <font color="#CC0000">Error Response</font></font></b></td></tr><tr><td align=center bgcolor="#F5F5F5"><font size="2" face="arial,helvetica,geneva"><p><strong>&nbsp;<br>The link you requested cannot be found.</strong></p><p>&nbsp;Please report this error to the <a href="$webmstr">webmaster</a>. <em>Thank you&nbsp;</em></p></font></td></tr><tr bgcolor="#666666"><td align=center><font size="2" face="arial,helvetica,geneva"><em><font color="#FFFFFF"><b>return with your</b></font></em><font color="#FFFFFF"><b> Back Arrow</b></font></font></td></tr></table></center></body></html>~;
exit;
}
exit;
}
1; #line must remain last and as is

View File

@ -0,0 +1,19 @@
# LogCount v3.8 error logging
sub err_logs {
if ((-e "$log_path"."$ENV{'REMOTE_ADDR'}.tf") || (-s "$log_path$badlog_name") > 2000000 || !open (LOG, ">>$log_path$badlog_name")) {exit;}
open (LOGG, ">$log_path"."$ENV{'REMOTE_ADDR'}.tf") || exit;
eval"flock(LOG, 2)";
my $trim = date_time(1)."|$err|$ENV{'HTTP_REFERER'}|$ENV{'REMOTE_ADDR'}";
$trim = substr($trim,0,150);
print LOG "$trim\n";
eval"flock(LOG, 8)";
close(LOG);
close(LOGG);
if (!($pn eq "l")) {&sendFile($img_url."trans.gif", "image/gif");}
else {print "Content-type: text/html\n\n";
print "Pages are copyright. Remote link access refused!<br>Please link via the actual on-site page\n";}
sleep 10;
unlink ("$log_path"."$ENV{'REMOTE_ADDR'}.tf");
exit;
}
1; #line must remain last and as is

View File

@ -0,0 +1,42 @@
#### adding/subtracting zeros alters length of visible counters ---#
$iszeros = "000000";
#### Select British ("0"), US ("1"), Internat ("2") date pattern --#
$dtUS = "2";
#### An array of accepted referers domain names / IP#s ------------#
@referers = ('asim.lip6.fr','www-asim.lip6.fr', 'chantaco.lip6.fr', );
#### An array of rejected domain names / IP#s ---------------------#
$rjct = "|myfoobars.com|000.000.000.000|wallies.edu.ca/~bloggs|";
#### Path to Records and Counter Images, SEE readme.txt file ------#
$gmt_pth = "$log_path/gmtset.pl";
#$log_path = "counters/"; # - with forward slash
$count_name = "hitcount.t";
$log_name = "hitlog.t";
$lnks_name = "hitlnk.t";
$badlog_name = "hitbadlog.t";
$def_pge = "index";
$iwid = 13;
$ihgt = 17;
$ssi_zro = 1;
#### PATH OR URL to NON SSI img display images --------------------#
#-- this can be the same as the $ssi_url value! (see readme)
# $img_url = "counters/"; # PATH - with forward slash
#$img_url = "http://yourdomain.name/ssi_img/"; # URL - with forward slash
#### URL to the images for SSI img display (see readme) -----------#
$ssi_url = "http://www-asim.lip6.fr/ssi/img/"; # - with forward slash
#### SSI Output (0 = hidden (blank), 1 = Text, 2 = Images ---------#
$ssi_img = 1;
#### E-Mail address of the Webmaster ------------------------------#
$webmstr = "mailto:Olivier.Sirol\@lip6.fr?subject=Link_Error";
#### Show Referer Domain Names, SEE readme.txt file ---------------#
$showDoms = "1";
1; # this line MUST remain in all 'require' files.

View File

@ -0,0 +1,6 @@
#### value = GMT at your locality, in seconds (cen setup via admin!)--------#
#### ie (5hrs AHEAD) = 5X60X60 = 18000, (3.5hrs BEHIND) = -3.5X60X60 = -12600
$gmtPlusMinus = 7200;
1; # this line must remain in all 'require' files.

View File

@ -0,0 +1,5 @@
2000/05/0024 16:01:27|bad referrer, off-site access denied||132.227.103.10
2000/05/0024 16:23:36|illegal method||
2000/05/0025 12:42:00|bad query_string||
2000/05/0025 12:55:38|illegal method||
2000/05/28 13:51:14|bad referrer, off-site access denied||208.185.131.219

View File

@ -0,0 +1 @@
20642

View File

@ -0,0 +1,3 @@
3451|../samp.htm|3387
dtp|http://www.dtp-aus.com/index.html|97
widgets|http://www.widgetstuff.net/|345

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
a.M5r8pTqIbSw

View File

@ -0,0 +1,23 @@
#### Path to Records and Counter Images, SEE readme.txt file ------#
$lookcfg_pth = "$log_path/lookcnfg.pl";
$pwrd_name = "look.pwd";
$grf1_url = "$ssi_url"."grf0.gif";
$grf0_url = "$ssi_url"."grf1.gif";
#### URL of the prefered return page (Home) -----------------------#
$hm_url = "http://www-asim.lip6.fr/";
#### URL of the LOGLOOK.CGI log viewer script ---------------------#
$logScrpt = "http://www-asim.lip6.fr/cgi-bin/czo/lc/cgi-bin/loglook.cgi";
#### URL of the LOGCNT.CGI counter script -------------------------#
$countScrpt = "http://www-asim.lip6.fr/cgi-bin/czo/lc/cgi-bin/logcnt.cgi";
#### Enable display of last 7 days ("1") --------------------------#
$shwDays7 = "1";
#### Enter a Password or leave blank(""), SEE readme.txt file -----#
$theword = "log";
1; # this line MUST remain in all 'require' files.

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

View File

@ -0,0 +1,30 @@
#LogCount v3.8 link count and redirect
sub do_link {
($scrap, $lnkNumb) = split(/\=/,$query_string);
if (!open (COUNT, "+<$log_path$lnks_name")) {$err = "Links File Access"; &err_log;}
eval"flock(COUNT,2)";
@lns = <COUNT>;
$cnts = 0;
foreach $ln (@lns){
@TL = split(/\|/,$ln);
if ($TL[0] eq $lnkNumb) {
$the_link = $TL[1];
if ($pn eq "l") {
$TL[2]++;
$lns[$cnts] = "$TL[0]|$TL[1]|$TL[2]\n";
seek(COUNT,0,0);
print COUNT @lns;
last;
} }
$cnts++;
}
eval"flock(COUNT,8)";
close(COUNT);
if (!($the_link eq "")) {print "Location: $the_link\n\n";}
else {
print "Content-type: text/html\n\n"; print qq~<html><head><meta name="author" content="Ron F Woolley 1998-99 - www.dtp-aus.com"><meta HTTP-EQUIV="Pragma" CONTENT="no-cache"><title>Error Response</title></head><body bgcolor="#FFFFFD" text="#333333" link="#0000CC"><center><p>&nbsp;</p><table cellpadding="1" cellspacing="3" border="0"><tr bgcolor="#F5F5FF"><td><b><font face="verdana,arial,geneva,helvetica" size="3">&nbsp;Link <font color="#CC0000">Error Response</font></font></b></td></tr><tr><td align=center bgcolor="#F5F5F5"><font size="2" face="arial,helvetica,geneva"><p><strong>&nbsp;<br>The link you requested cannot be found.</strong></p><p>&nbsp;Please report this error to the <a href="$webmstr">webmaster</a>. <em>Thank you&nbsp;</em></p></font></td></tr><tr bgcolor="#666666"><td align=center><font size="2" face="arial,helvetica,geneva"><em><font color="#FFFFFF"><b>return with your</b></font></em><font color="#FFFFFF"><b> Back Arrow</b></font></font></td></tr></table></center></body></html>~;
exit;
}
exit;
}
1; #line must remain last and as is

View File

@ -0,0 +1,19 @@
# LogCount v3.8 error logging
sub err_logs {
if ((-e "$log_path"."$ENV{'REMOTE_ADDR'}.tf") || (-s "$log_path$badlog_name") > 2000000 || !open (LOG, ">>$log_path$badlog_name")) {exit;}
open (LOGG, ">$log_path"."$ENV{'REMOTE_ADDR'}.tf") || exit;
eval"flock(LOG, 2)";
my $trim = date_time(1)."|$err|$ENV{'HTTP_REFERER'}|$ENV{'REMOTE_ADDR'}";
$trim = substr($trim,0,150);
print LOG "$trim\n";
eval"flock(LOG, 8)";
close(LOG);
close(LOGG);
if (!($pn eq "l")) {&sendFile($img_url."trans.gif", "image/gif");}
else {print "Content-type: text/html\n\n";
print "Pages are copyright. Remote link access refused!<br>Please link via the actual on-site page\n";}
sleep 10;
unlink ("$log_path"."$ENV{'REMOTE_ADDR'}.tf");
exit;
}
1; #line must remain last and as is

View File

@ -0,0 +1,42 @@
#### adding/subtracting zeros alters length of visible counters ---#
$iszeros = "000000";
#### Select British ("0"), US ("1"), Internat ("2") date pattern --#
$dtUS = "2";
#### An array of accepted referers domain names / IP#s ------------#
@referers = ('neptune.ufr-info-p6.jussieu.fr','www-asim.lip6.fr', );
#### An array of rejected domain names / IP#s ---------------------#
$rjct = "|myfoobars.com|000.000.000.000|wallies.edu.ca/~bloggs|";
#### Path to Records and Counter Images, SEE readme.txt file ------#
$gmt_pth = "$log_path/gmtset.pl";
#$log_path = "counters/"; # - with forward slash
$count_name = "hitcount.t";
$log_name = "hitlog.t";
$lnks_name = "hitlnk.t";
$badlog_name = "hitbadlog.t";
$def_pge = "index";
$iwid = 13;
$ihgt = 17;
$ssi_zro = 1;
#### PATH OR URL to NON SSI img display images --------------------#
#-- this can be the same as the $ssi_url value! (see readme)
# $img_url = "counters/"; # PATH - with forward slash
#$img_url = "http://yourdomain.name/ssi_img/"; # URL - with forward slash
#### URL to the images for SSI img display (see readme) -----------#
$ssi_url = "http://www-asim.lip6.fr/ssi/img/"; # - with forward slash
#### SSI Output (0 = hidden (blank), 1 = Text, 2 = Images ---------#
$ssi_img = 1;
#### E-Mail address of the Webmaster ------------------------------#
$webmstr = "mailto:Olivier.Sirol\@lip6.fr?subject=Link_Error";
#### Show Referer Domain Names, SEE readme.txt file ---------------#
$showDoms = "1";
1; # this line MUST remain in all 'require' files.

View File

@ -0,0 +1,6 @@
#### value = GMT at your locality, in seconds (cen setup via admin!)--------#
#### ie (5hrs AHEAD) = 5X60X60 = 18000, (3.5hrs BEHIND) = -3.5X60X60 = -12600
$gmtPlusMinus = 7200;
1; # this line must remain in all 'require' files.

View File

@ -0,0 +1,8 @@
2000/05/26 17:00:05|bad referrer, off-site access denied||134.157.252.132
2000/05/26 17:00:34|bad referrer, off-site access denied||134.157.252.132
2000/05/26 17:00:34|bad referrer, off-site access denied||134.157.252.132
2000/05/26 17:00:34|bad referrer, off-site access denied||134.157.252.132
2000/05/26 17:00:48|bad referrer, off-site access denied||134.157.252.132
2000/05/26 17:01:19|bad referrer, off-site access denied||134.157.252.132
2000/05/29 17:03:37|bad referrer, off-site access denied||134.157.252.132
2000/05/30 12:26:09|bad referrer, off-site access denied||134.157.252.132

View File

@ -0,0 +1,16 @@
2000/05/26 17:01:30, 132.227.65.52, /menu.html, Mozilla/4.61 [en] (X11; I; Linux 2.2.5-15epona0 i586), epona.edite-de-paris.com.fr
2000/05/26 17:01:43, 132.227.65.52, /menu.html, Mozilla/4.61 [en] (X11; I; Linux 2.2.5-15epona0 i586), epona.edite-de-paris.com.fr
2000/05/26 17:01:50, 132.227.65.52, /menu.html, Mozilla/4.61 [en] (X11; I; Linux 2.2.5-15epona0 i586), epona.edite-de-paris.com.fr
2000/05/26 17:44:23, 132.227.65.52, /menu.html, Mozilla/4.61 [en] (X11; I; Linux 2.2.5-15epona0 i586), epona.edite-de-paris.com.fr
2000/05/29 12:48:08, 134.157.252.132, /menu.html, Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt), wwwcache.jussieu.fr
2000/05/29 17:29:05, 132.227.65.52, /menu.html, Mozilla/4.61 [en] (X11; I; Linux 2.2.5-15epona0 i586), epona.edite-de-paris.com.fr
2000/05/29 17:30:03, 132.227.65.23, /menu.html, Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt), mercure.edite-de-paris.com.fr
2000/05/30 10:53:31, 132.227.65.52, /menu.html, Mozilla/4.61 [en] (X11; I; Linux 2.2.5-15epona0 i586), epona.edite-de-paris.com.fr
2000/05/30 11:23:27, 132.227.68.5, /menu.html, ÊMozilla/3.0 (compatible; MSIE 3.01; Mac_PowerPC; Mac OS8), mac-isabelle-azam.ufr-info-p6.jussieu.fr
2000/05/30 12:00:08, 134.157.252.132, /menu.html, Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt), wwwcache.jussieu.fr
2000/05/30 14:39:37, 132.227.65.52, /menu.html, Mozilla/4.61 [en] (X11; I; Linux 2.2.5-15epona0 i586), epona.edite-de-paris.com.fr
2000/05/30 15:00:32, 134.157.252.131, /menu.html, Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt), wwwcache.jussieu.fr
2000/05/30 15:45:31, 132.227.68.5, /menu.html, ÊMozilla/3.0 (compatible; MSIE 3.01; Mac_PowerPC; Mac OS8), mac-isabelle-azam.ufr-info-p6.jussieu.fr
2000/05/30 15:59:36, 134.157.252.131, /menu.html, Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt), wwwcache.jussieu.fr
2000/05/30 17:38:43, 132.227.65.52, /menu.html, Mozilla/4.61 [en] (X11; I; Linux 2.2.5-15epona0 i586), epona.edite-de-paris.com.fr
2000/05/31 10:35:39, 132.227.205.102, /menu.html, Mozilla/4.0 (compatible; MSIE 4.5; Mac_PowerPC), mac-ghislaine.lip6.fr

View File

@ -0,0 +1 @@
a.M5r8pTqIbSw

View File

@ -0,0 +1,23 @@
#### Path to Records and Counter Images, SEE readme.txt file ------#
$lookcfg_pth = "$log_path/lookcnfg.pl";
$pwrd_name = "look.pwd";
$grf1_url = "$ssi_url"."grf0.gif";
$grf0_url = "$ssi_url"."grf1.gif";
#### URL of the prefered return page (Home) -----------------------#
$hm_url = "http://armandino.free.fr/";
#### URL of the LOGLOOK.CGI log viewer script ---------------------#
$logScrpt = "http://www-asim.lip6.fr/cgi-bin/czo/lc/cgi-bin/loglook.cgi";
#### URL of the LOGCNT.CGI counter script -------------------------#
$countScrpt = "http://www-asim.lip6.fr/cgi-bin/czo/lc/cgi-bin/logcnt.cgi";
#### Enable display of last 7 days ("1") --------------------------#
$shwDays7 = "1";
#### Enter a Password or leave blank(""), SEE readme.txt file -----#
$theword = "log";
1; # this line MUST remain in all 'require' files.

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

View File

@ -0,0 +1,225 @@
#!/usr/local/bin/perl -w
# Czo : 2000/05/25
#
use CGI;
$query = new CGI;
##############################################################################
# An IMG SRC, SSI and A HREF(links) called script that saves to common #
# log files also used by the Loglook.cgi log viewer and SSI count viewers #
# DO NOT use this script without first reading the accompanying README #
# installation and help page IN DETAIL. #
##############################################################################
# The script "LOGCNT.CGI" was written (c) by Ron F Woolley, Melbourne #
# Australia. Copyright 1998'99 2000. This script can be altered for personal #
# site use or commercial site use EXCEPT THAT: #
# ALL COPYRIGHT NOTICES must remain in the code, visible on all output pages,#
# AND ALL of the header notices MUST REMAIN intact as is, #
# AND using the script without first reading the README.HTM, is prohibited. #
# #
# Australian copyright is recognised/supported in over 130 countries... #
# per the Berne Convention and other treaties. (including USA!) #
# #
# The scripts and associated files REMAIN the property of Ron F Woolley. #
# NO PROFIT what so ever is to be gained from users of these scripts by #
# installation of these scripts, except that a reasonable minimal charge #
# for installation MAY be allowed. Supply, per installation, is directly #
# from dtp-aus.com ONLY. Remote hosting of this program is strictly #
# not allowed. #
# #
# Ron Woolley, the author, MUST be notified via the addresses/URLs below #
# if any gain is to be made for the installation of these scripts. #
# #
##############################################################################
# NOTE: If you use these files, you do so entirely at your own risk, and #
# take on full responsibility for the consequences of using the described #
# files. You must first agree that Ron Woolley / HostingNet, the only #
# permitted supplier of this and/or accompanying files is exempt from any #
# responsibility for all or any resulting problems, losses or costs caused #
# by your using these or any associated files. If you disagree with ANY of #
# the included requirements, you must IMMEDIATELY DESTROY ALL FILES. #
##############################################################################
# This program script is free to use Copyright notices must remain #
##############################################################################
# These program scripts are free-to-use, but if you use them, a donation to #
# the author would be appreciated and help in continuing support for #
# LogCount and the creation of other scripts for users of the internet. #
# An on-line Visa / MasterCard payment cart is available for support #
# donations and low cost program installations. #
##############################################################################
# HELP/ADVICE page at: #
# http://www.dtp-aus.com/cgiscript/scrpthlp.htm #
# Files from: #
# http://www.dtp-aus.com/cgiscript/cntscrpt.shtml #
##############################################################################
# THESE FILES can only be obtained via the above web addresses,and MUST #
# NOT BE PASSED ON TO OTHERS in any form by any means what so ever. This #
# DOES NOT contradict any other statements above. #
# EACH USER SITE MUST OBTAIN THESE FILES from URL above. #
##############################################################################
# VERSION 3.8 Februrary 2000 #
#--- Alter these two paths only, if needed! ---------------------#
$log_path = "counters/"; # - with forward slash
$img_url = "counters/"; # PATH - with forward slash
$sitename = $query->param('site');
if ( $sitename eq "" )
{$sitename="asim";}
$log_path = $log_path . "$sitename/";
$img_url = $img_url . "$sitename/";
if (-s "$log_path/gmtset.pl") {require "$log_path/gmtset.pl";} else {print "Content-type: text/html\n\n"; print "Missing/Bad Path to GMTime file\n"; exit;}
if (-s "$log_path/cntcnfg.pl") {require "$log_path/cntcnfg.pl";} else {print "Content-type: text/html\n\n"; print "Missing/Bad Path to Config file\n"; exit;}
#--- Do Not make any changes below this line. -------------------#
sub logged_as {
$pnm = $ENV{'HTTP_REFERER'};
$pnm =~ s/\#.*$//g ;
$pnm =~ s/\?.*$//g;
$pid = $pnm ;
if ($pid =~ /https?:\/\/.*\/([^\/]*.*\/[^\.].*\..*)$/i) {$pid = $1;}
elsif ($pid =~ /https?:\/\/.*(\/[^\.].*\..*)$/i) {$pid = $1;}
elsif ($pid =~ /https?:\/\/.*\/(.*\/)$/) {$pid = $1;}
elsif ($pid =~ /https?:\/\/.*(\/.*)$/) {$pid = $1;}
else {$pid = "/$def_pge" if !$ENV{'DOCUMENT_URI'};}
$pid =~ s/^\.+//;
}
sub sg_count {
&do_count($log_path.$count_name);
my $tmp;
if ($pn eq "p" && (-s "$pnm")) {
($tmp = $pid) =~ s/\./-/g;
$tmp =~ s/\//_/g;
&do_count($log_path.$tmp) }
$cnb = (substr($iszeros,1,length($iszeros) - length($cnb)).$cnb);
}
sub do_count {
my $fle = shift;
if (!(-e "$fle")) {if (!open (COUNT, ">$fle")) {$err = "creating new count file"; &err_log;} close (COUNT);}
if (!open (COUNT, "+<$fle")) {$err = "count file access"; &err_log;}
eval"flock(COUNT,2)";
$cnb = <COUNT>;
if ( $pn eq "0" || $pn eq "t" || $pn eq "c" || substr($query_string,0,2) eq "p0" || $ENV{'DOCUMENT_URI'} ) {
if ($rjct !~ /(\|$ENV{'REMOTE_HOST'}\||\|$ENV{'REMOTE_ADDR'}\|)/i) {$cnb = $cnb + 1;}
seek (COUNT, 0, 0);
print COUNT $cnb;
}
eval"flock(COUNT,8)";
close (COUNT);
chomp($cnb);
}
sub do_log {
if ($rjct =~ /(\|$ENV{'REMOTE_HOST'}\||\|$ENV{'REMOTE_ADDR'}\|)/i) {return;}
if (($ENV{'REMOTE_ADDR'} eq $ENV{'REMOTE_HOST'} || !$ENV{'REMOTE_HOST'}) && $ENV{'REMOTE_ADDR'} =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/) {
$pk = pack('C4', $1, $2, $3, $4);
$cnvrt = (gethostbyaddr($pk, 2))[0];
if ($cnvrt) {$ENV{'REMOTE_HOST'} = $cnvrt;}
}
if (!open (MLOG, ">>$log_path$log_name")) {$err = "log file access"; &err_log;}
eval"flock(MLOG,2)";
print MLOG date_time(1).", $ENV{'REMOTE_ADDR'}, $pid, $ENV{'HTTP_USER_AGENT'}, $ENV{'REMOTE_HOST'}\n";
eval"flock(MLOG,8)";
close(MLOG);
}
sub sendFile {
if ($img_url eq $ssi_url) {print "Location: $_[0]\n\n";}
else {
die("$0: sendFile called w/o File\n") unless my $File = $_[0];
die("$0: sendFile called on $File, no type\n") unless my $type = $_[1];
my $size = 0;
if ( open(FILE, $File)) {
$size = ( -s $File);
print "Content-type: $type\n"; print "Content-length: $size\n\n"; print <FILE>;
close (FILE);
} else {$err = "send-image file access error"; &err_log;}
$size;
}
}
sub date_time {
($which,$z) = ($_[0],"a"); my($sec,$min,$hour,$mday,$mon,$year);
if (!$which) {
($min,$hour) = (gmtime(time + $gmtPlusMinus))[1,2];
if ($hour > 11) {$z = "p";}
if ($hour > 12) {$hour = $hour - 12;}
return sprintf("%02d-%02d$z",$hour,$min);
}
elsif ($which) {
($sec,$min,$hour,$mday,$mon,$year) = (gmtime(time + $gmtPlusMinus));
if ($year > 99) {$year = 2000 + ($year - 100);}
elsif ($year < 100) {$year = "19$year";}
if ($dtUS eq "1") {return sprintf("%02d\/%02d\/%04d %02d:%02d:%02d",$mon + 1,$mday,$year,$hour,$min,$sec);}
elsif ($dtUS eq "2") {return sprintf("%04d\/%02d\/%02d %02d:%02d:%02d",$year,$mon + 1,$mday,$hour,$min,$sec);}
else {return sprintf("%02d\/%02d\/%04d %02d:%02d:%02d",$mday,$mon + 1,$year,$hour,$min,$sec);}
}
}
sub do_ssi {
&sg_count; print "Content-type: text/html\n\n";
if ($cnb eq 0 || $cnb eq "") {$cnb = "???";}
$cnb =~ s/^(0+)// if !$ssi_zro;
if (!$ssi_img) {print " ";}
elsif ($ssi_img == 1) {print "$cnb";}
else {
for($cnt = 0; $cnt <= length($cnb) - 1; $cnt++) { $digit = substr($cnb,$cnt,1);
print "<img \n src=\"$ssi_url"."$digit.gif"."\" width=\"$iwid\" height=\"$ihgt\" border=\"0\">";}
}
$ENV{'HTTP_REFERER'} = $ENV{'DOCUMENT_URI'};
&logged_as; &do_log;
exit;
}
sub do_clock {
local($digit,$chk) = ($_[0],$_[0]);
$digit = substr(date_time(0),$digit,1);
&sendFile($img_url.$digit.".gif", "image/gif");
if ($pn eq "c" && $chk eq 0) {&sg_count; &do_log;}
exit;
}
sub err_log {require "$log_path"."a_errlog.pl"; &err_logs}
########## Main
if ( $ENV{'DOCUMENT_URI'} ) { &do_ssi; }
if ( $ENV{'REQUEST_METHOD'} eq 'GET' ) {;}
elsif ( $ENV{'REQUEST_METHOD'} eq 'POST' ) {;}
else {$err = "illegal method"; &err_log;}
$query_string = $query->param('log');
$query_string =~ s/(\0|`|..\\)//g;
$pn = substr($query_string,0,1);
my $crf = 0;
if ($ENV{'HTTP_REFERER'}) {
foreach $referer (@referers) {
if ($ENV{'HTTP_REFERER'} =~ m|\Ahttps?://([^/]*)$referer|i) {
$crf = 1;
last;
} } }
if ($crf == 0) {$err = "bad referrer, off-site access denied"; &err_log;}
&logged_as;
if ($pn =~ /\Al\Z/i) {require "$log_path"."a_dolink.pl"; &do_link;}
elsif ($pn =~ /^(c|n)/) {&do_clock(substr($query_string,1,1));}
&sg_count;
if ($pn eq "p") {
local($digit) = substr($cnb,substr($query_string,1,1),1);
&sendFile($img_url.$digit.".gif", "image/gif");
&do_log if $query_string =~ /^p0$/;
} elsif ($pn eq "t") {
&sendFile($img_url."trans.gif", "image/gif");
&do_log ;
} elsif ($pn eq "0" || $pn eq "v") {
local($digit) = substr($cnb,0,1);
&sendFile($img_url.$digit.".gif", "image/gif");
&do_log if $pn eq "0";
} elsif ($pn =~ /[1-7]/) {
local($digit) = substr($cnb,$pn,1);
&sendFile($img_url.$digit.".gif", "image/gif");
}
exit(0);

Some files were not shown because too many files have changed in this diff Show More