#!/usr/bin/perl # Unix Pfad zum internen Server-Datum : $dateCmd = '/bin/date'; # Unix Pfad zum HitMat Directory : $hitmatDir = "/httpdocs/hitmat"; # Unix Pfad zum Backup Directory : $bakDir = '/httpdocs/bak'; # URL Pfad zum HitMat Directory : $hitmatUrl = 'http://www.wernerlau.com/httpdocs/hitmat'; # URL Pfad zum Programm 'hitmat.cgi' : $scriptUrl = 'http://www.wernerlau.info/cgi-bin/hitmat.cgi'; # Ziel-URL beim Verlassen des Managers : $exitUrl = 'http://www.wernerlau.com/'; # Anzeige Anzahl Ziffern (je 16 Pixel lang !! Bsp: 6=96 Pixel / 7=112 Pixel etc.) : $anzahl ='7'; # ggf. EXCLUDE einer Domain deren Hits die nicht gezählt werden : $xTail = '.xxx.com'; # An einem neuen Tag wird zwischen Mitternacht bis $trigHour beim ersten 'Hit' : # 1) Tagesdaten aus 'hit1.log' in das Monatsdaten-File übernommen # 2) 'hit1.log' unter 'hit2.log' gespeichert (als update) # 3) Am Monats-Ersten das entsprechende 'hitX.dat' Monatsdaten-File vom Vorjahr neu initialisiert (geleert) # 4) natürlich der Hit im neuen hit1.log gespeichert. ;-)) # Value für $trigHour von 1 bis 23 $trigHour = 06; $headTitle = "HIToMATIC 2.2"; $bodyTag = qq|
|; $bodyTitle = qq|HIToMATIC by Astro|; # Tabellen-Rand ? (0 = Kein Rand) : $border = 1; # Max.Länge der Seitenbezeichungen bei der Screenanzeige (nur Jahres und Monats Statistik!! ) $ml = "20"; # Hintergrundfarben für Zeilen $hzc1="e0e0e0"; $hzc2="f8f8ff"; # Zeichenfarbe für Monat + Tag $hzc3="000000"; # Zeichenfarbe für Gruppe + Seite $hzc4="000000"; # ggf. verwendetesTrennzeichen bei Seitenbezeichnungen (nur für Statistik-Tabellen-Anzeige) $filter ="_"; # ggf. Zusatz ab wann Daten erfasst werden $zusatz1 ="-"; # ggf. Zusatz zum Header bei 'ewiger' Statistik $zusatz2 ="seit EINRICHTUNG der jeweiligen Counter"; # Wenn kein tägliches Backup des Monatsdaten-Files stattfinden soll, $bakFlag auf 'N' setzen, # andernfalls die Werte im folgenden IF-Loop anpassen : $bakFlag = 'Y'; if ($bakFlag eq 'Y') { $bakTime = 1; # Tage zwischen den Backups $bakMax = 400; # Anzahl der Files (wieviel Backups erhalten werden) chop ($jDate = `$dateCmd +"%j"`); $HITBAK = "$bakDir/hit$jDate.bak"; } # ENDE der Parameter Anpassungen # Der folgende Rest muss nicht geändert werden ! ################################## chop ($dayStamp = `$dateCmd +"%e"`); $dayStamp =~ s/\s*//g; chop ($hourStamp = `$dateCmd +"%H"`); chop ($timeStamp = `$dateCmd +"%a %D %H%M%Z"`); chop ($hzStamp = `$dateCmd +"erstellt am %d.%m.%Y %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 oder POST Input und SETUP 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; } # Täglicher Backup innerhalb $triHour : if ($hourStamp < $trigHour) { require "./hitcfg.pl"; &checkCfg; } # Addiere einen HIT zum Hauptzähler open (CNT,"+<$HITCNT") || &endIt; flock (CNT,2); seek (CNT,0,0); @inFile =