#!/usr/bin/perl
###########################################################################################
# gdoccount.cgi
###########################################################################################
# GEOs GCount, GDocCount und GCountAdmin V. 1.4 - 21. April 2000
#
# GEOsWEB
# http://www.geosweb.de
# admin@geosweb.de
#__________________________________________________________________________________________
#
# Copyright (C) 1999 GEOsWEB - J–rg von Livonius, Georg Bartsch
# ALLE RECHTE VORBEHALTEN
#
# GEOs GCount, GDocCount und GCountAdmin sind f¸r private Nutzer kostenlos.
# Gewerbliche Nutzer bitten wir um R¸cksprache (admin@geosweb.de).
# Das Kopieren und Weitergeben des Dokuments ist NICHT erlaubt.
# Das Ÿndern des Skriptes ist NICHT erlaubt, mit Ausnahme des Suffix (anstelle .cgi z.B. .pl).
# Das w–rtliche Ðbernehmen von einzelnen Passagen aus diesem Dokument in eigene Projekte ist NICHT erlaubt.
# Die Copyright-Angaben und Hinweise zu GEOsWEB d¸rfen aus keiner Datei entfernt werden und m¸þen stets lesbar sein.
#
# Bei Ver–ffentlichung dieses Dokuments ist es eine feine Geste, uns eine Nachricht zukommen zu lassen.
#__________________________________________________________________________________________
#
# HINWEIS:
# ========
# Dieses Skript kann NUR in Kombination mit dem Skript GCountAdmin von GEOsWEB eingesetzt werden!!!
# Entnehmen Sie bitte alle Installationsanweisungen dem beigef¸gten Manual.
#__________________________________________________________________________________________
#
# Lieferumfang:
# =============
# 1. gcount.cgi
# 2. gcountadmin.cgi
# 3. gdoccount.cgi
# 4. gcountadmin.cfg
# 5. gcountdesign.cfg
# 6. counter.txt
# 7. statfile.txt
# 8. logfile.txt
# 9. passwd.txt
# 10. gip.txt
# 11. bar.gif
# 12. 0.gif bis 9.gif
# 13. 0.png bis 9.png
# 14. manual.html
#__________________________________________________________________________________________
#
# Aufruf:
# =======
#
#
#
# Normalerweise teilt jeder CGI-Server dem Skript ueber die Umgebungsvariable %ENV{HTTP_REFERER}
# den Namen der aufrufenden Seite mit. Falls Ihr Server diese Variable nicht mitteilt,
# dies koennen Sie mit GEOsWEB GServerInfo schnell herausfinden, muessen Sie die URL der zu
# zaehlenden Seite folgendermassen angeben:
#
#
# oder:
#
#
###########################################################################################
use AnyDBM_File;
require "gcountadmin.cfg";
dbmopen (%DB,"$counter_path/$config_db", 0666);
$windows = $DB{windows};
$url = $DB{url};
dbmclose (%DB);
if ($ENV{'QUERY_STRING'} eq '' && $ENV{'HTTP_REFERER'} ne '') {
$hit = $ENV{'HTTP_REFERER'};
}
else {
$hit = $ENV{'QUERY_STRING'};
$hit =~ s/%([\dA-Fa-f][\dA-Fa-f])/ pack ("C", hex ($1))/eg;
}
if ($hit ne '') {
if ($hit !~ /^(f|ht)tp:\/\//) {
if ($hit !~ /$url/) {
$hit =~ s/^\/?//;
$hit="$url/$hit";
}
}
dbmopen (%DB,"$counter_path/$doc_db", 0666);
if ($windows == 0) { flock (DB, 2); }
if ($DB{$hit}) { $DB{$hit}++; }
else { $DB{$hit}=1; }
dbmclose (%DB);
}
print "Content-type: image/gif\n";
print "Pragma: no-cache\n";
print "Expires: now\n\n";
binmode(STDOUT);
foreach (71,73,70,56,57,97,1,0,1,0,128,255,0,192,192,192,0,0,0,33,249,4,1,0,0,0,0,44,0,0,0,0,1,0,1,0,0,1,1,50,0,59) {
print pack('C',$_);
}