Seitenzugriffe mit der PageCounter Komponente erfassen
Geschrieben von: Christian Holm Um die Popularität Ihrer Website zu überprüfen, können Sie auf den Seiten Ihrer Site einen Page Counter (Zähler) einsetzen, der die Clientzugriffe mitloggt. Natürlich gibt es eine Vielzahl von Drittanbieter die dieses Feature zur Verfügung stellen. Dabei müssen Sie wieder ein fremdes Script in Ihre Seite einbinden, sich lästige Werbung gefallen lassen - von Konfigurationsproblemen ganz zu schweigen. Warum sollte man also auf solche Angebote ausweichen, vor allem dann, wenn der Internet Information Server (IIS) eine kleine ASP-Komponete zur Verfügung stellt, die sich einfachst einbinden läßt - die PageCounter Komponente. Diese läßt sich leicht konfigurieren und mit ein bischen Code sogar professionell aufpeppen. Die Page Counter Komponente ist bereits ab dem Internet Information Server (IIS) Version 4 verfügbar (IIS Resource Kit), und wird bei Windows 2000 Internet Information Services standardmäßig mitinstalliert. Verwendung der PageCounter KomponenteDie PageCounter Komponente zählt die Zugriffe auf eine ASP Seite und kann die Gesamtstatistik auf derselben oder einer anderen Seite wieder ausgeben. Innerhalb bestimmter, regelmäßiger Intervalle schreibt das Objekt die Pagehits in eine Textdatei (die sogenannte Hit Count Data Datei), damit diese Daten auch über Serverrestarts verfügbar bleiben. Für Programmierer als auch Administratoren ist es natürlich gut zu wissen, wo diese Hit Count Data Datei gespeichert wird (etwaige Zugriffsrechteprobleme könnten mit der Standardeinstellung entstehen), sowie wie oft die Counter dort gespeichert werden (bei vielen Seiten mit hoher Zugriffsfrequenz sollte man das Intervall erhöhen). Diese Informationen (Speicherort und Speicherfrequenz) werden in der Registrierdatenbank des Servers abgelegt. Der Pfad ist HKEY_CLASSES_ROOT\MSWC.PageCounter (siehe Bild). Die beiden Schlüsselwerte, die man verändern kann, sind hier beschrieben:
Da wir jetzt alle funktionalen Details geklärt haben, können wir nun zum Programmieren kommen. Wenn man die PageCounter Komponente nun verwenden möchte, so hat man drei Methoden zur Verfügung
Mit diesen Information wollen wir uns nun auf Beispiele stürzen. Auslesen und Erhöhen von Page CountsDieses Beispiel verwendet die PageHit und Hits Methoden der PageCounter Komponente, um die Anzahl der Besucher zu ermitteln (countertest.asp). <% @LANGUAGE="VBSCRIPT" %> <% Option Explicit Response.Expires = 0 %> <html> <head> <title>PageCount'd Page</title> </head> <body bgcolor="#ffffff"> <p> Zählen der HitCounts mit Hilfe der Hits-Methode: <% Dim PgeCount Set PgeCount = Server.CreateObject("MSWC.PageCounter") PgeCount.PageHit %> Diese Website wurde <b><%= PgeCount.Hits %></b> Mal besucht. </p> <p> Ausgabe Counter für beliebige Seite: Die Seite prettyscript.asp wurde <b><%= PgeCount.Hits("/aspheute/prettyscript.asp") %></b> Mal besucht. </p> <% Set PgeCount = Nothing %> </body> </html> Wie man im Beispielcode sehen kann, verwende ich die Hits Methode einmal ohne, als auch einmal mit Parameter. Der optionale Parameter gibt eine beliebige Datei an, von der der Hit Count ermittelt werden soll. Falls der Parameter nicht gesetzt ist, dann wird der Hit Count der aktuell ausgeführten Seite ausgegeben. Der Rückgabewert der Hits Methode entspricht der Anzahl an Hit Counts und hat den Datentyp Long. Wie komme ich aber nun zu meinem Hit Count - sprich, wie erhöhe ich die Anzahl der Zugriffe? Das erledigt die Methode PageHit für uns - sie erhöht den Hit Count der aktuellen Webseite um eins (1). In diesem Beispiel mache ich es sofort nach der Instanzierung des MSWC.PageCounter Objekts. Hit Counts zurücksetzenHier kommt uns die dritte Methode - die Reset Method - zu Hilfe. Sie setzt beliebige Zugriffszähler auf 0 zurück. Auch diese Methode hat einen optionalen Pfadparameter, der auch wie bei Hits dazu verwendet werden kann, um beliebige Zähler zurückzusetzen. Das nun folgende Beispiel setzt den Zähler der aktuellen Seite und für eine externe Datei auf 0 zurück (counterreset.asp). <% Option Explicit %> <html> <head> <title>Resetten der Page Counter</title> </head> <body bgcolor="#ffffff"> <% Dim PgeCount Set PgeCount = Server.CreateObject("MSWC.PageCounter") ' Rücksetzung der aktuellen Seite PgeCount.Reset ' Rücksetzung einer beliebigen Seite PgeCount.Reset("/webroot/webseite.asp") ' ab jetzt sind alle Counter auf 0: %> <P> Page Hits auf aktueller Seite: <%= PgeCount.Hits %> <br> Page Hits auf prettyscript.asp: <%= PgeCount.Hits("/aspheute/prettyscript.asp") %> </p> </body> </html> SchlußbemerkungDieser Artikel beschreibt die Möglichkeiten der PageCounter Komponente mit ihren zur Verfügung gestellten Methoden. Hier wurde lediglich das Grundwissen zur Komponente vermittelt - durch zusätzliches Tuning läßt sich natürlich noch einiges verbessern (Statistiken über alle Seiten, Tagescounter, etc). In den meisten Fällen kann man auf einen optischen Aufputz verzichten - was sicherlich das Tüpfelchen auf dem "i" ist, ist die graphische Auswertung der Page Hits. Download des CodesKlicken Sie hier, um den Download zu starten. Wenn Sie jetzt Fragen haben...Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten. Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.
Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.
©2000-2006 AspHeute.com |