#!/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: # ======= # # GEOsWEB GCount # # 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',$_); }