Besucherzähler: So erstellen Sie einen Counter für Ihre Website

Besucherzähler halten fest, wie oft eine Website aufgerufen wird, und präsentieren die Besucherzahl für gewöhnlich am unteren Rand der Startseite. Während die visuelle Ausgabe der Nutzerdaten meist nur einen repräsentativen Zweck hat, verwenden viele Betreiber die ermittelten Besucherzahlen auch für Webanalysen. Hierfür greifen die meisten auf die integrierten Webcounter-Möglichkeiten von Content-Management-Systemen oder Homepage-Baukästen zurück oder erwerben einen Zähler bei einem der diversen Online-Anbieter. Diese Lösungen nutzen häufig die von der Logfile-Analyse bekannten Zählpixeln oder ähnliche JavaScript-Anwendungen, die zusätzlich zur bloßen Zahl der Besucher auch spezifische Informationen zu den einzelnen Nutzern aufzeichnen.

Damit Sie nicht von einem externen Dienstleister abhängig und auch in Sachen Datenschutz auf der sicheren Seite sind, können Sie alternativ auch einen eigenen Besucherzähler erstellen und auf dem eigenen Webspace laufen lassen. Sie benötigen dazu lediglich eine Datenbank bzw. Textdatei sowie grundlegendes PHP-Know-how.

Mehr als nur eine Domain!

Hier finden Sie Ihre perfekte Domain - z.B. .de Domain + persönlicher Berater

E-Mail-Postfach
24/7 Support
Wildcard SSL

Wie funktionieren herunterladbare Webcounter-Lösungen?

Der einfachste Weg, einen Counter auf Ihrer Website zu implementieren, ist zweifelsohne der Download eines fertigen Skripts. Kostenpflichtige und kostenlose Besucherzähler unterscheiden sich dabei in erster Linie durch ihren Leistungsumfang. Wenn Sie sich nämlich für ein zahlungspflichtiges Angebot entscheiden, erhalten Sie in der Regel auch visuell aufbereitete Statistiken mit Informationen, die weit über die Angabe des bloßen Traffics hinausgehen. Wie detailliert diese Auskünfte sind, hängt davon ab, ob die Aufzeichnung der Besucheraktivitäten ausschließlich auf Seiten des Servers oder zusätzlich auch clientseitig stattfindet. In beiden Fällen werden aber standardmäßig folgende Grundparameter erfasst:

  • Zeitpunkt des Zugriffs
  • IP-Adresse des Besuchers
  • Client des Besuchers
  • Quell-URL

Je nach Konfiguration kann der Server jedem einzelnen Besucher bei seinem ersten Zugriff eine eindeutige Kennung (Session-Cookie) zuweisen. So lässt sich in der Besucherzähler-Statistik berücksichtigen, ob es sich um den ersten Seitenaufruf eines Nutzers handelt oder ob dieser bereits mehrere Seiten aufgerufen hat. Mithilfe von clientseitigem JavaScript oder Adobe Flash kann man den Informationsgewinn noch zusätzlich steigern. Tracking verrät beispielsweise, welches Betriebssystem und welche Browser-Erweiterungen der Besucher verwendet hat oder welche Bildschirmauflösung eingestellt ist. Letztgenannte Information kann beispielsweise bei der Website-Optimierung für Mobilgeräte eine entscheidende Rolle spielen.

Bei den meisten Anbietern können Sie sich zwischen verschiedenen Designs und Größen für den später angezeigten Besucherzähler entscheiden. Sie wählen eines der verfügbaren Designs und die gewünschte Größe aus und generieren über entsprechenden Tool mit einem Click den HTML-Code. Dieses Snippet binden Sie anschließend einfach an gewünschter Stelle in Ihre Webseiten ein, um das Besucher-Tracking zu aktivieren.

Besucherzähler selbst erstellen – eine Anleitung

Wenn Sie einen eigenen Besucherzähler für Ihre Homepage erstellen wollen, müssen Sie zunächst die passenden Strukturen schaffen. Die erfassten Zugriffe müssen beispielsweise zunächst einmal gespeichert werden. Nur so kann der Webcounter später auch den aktuellen Stand anzeigen und aussagekräftige Statistiken liefern. Für kleinere Websites reicht hierfür eine einfache Textdatei, die Sie auf Ihrem Server ablegen und in dem Skript als Speicherort angeben. Je größer Ihr Webprojekt und der durchschnittliche Traffic jedoch sind, desto eher sollten Sie für die Speicherung der Informationen auf eine Datenbank wie MySQL zurückgreifen. Bevor wir auf das eigentliche Skript eingehen, behandelt der nächste Abschnitt die entsprechende Konfiguration der Datenbank.

MySQL-Datenbank für Webcounter konfigurieren

Die Verknüpfung mit einer Datenbank ist grundsätzlich mit mehr Anfragen verbunden und aus diesem Grund auch komplexer als der Abruf der Informationen aus einer einfachen Textdatei. Überprüfen Sie also im Vorhinein genau, ob sich der Einsatz von MySQL und Co. für Sie lohnt oder Ihr Projekt eventuell unnötigerweise bremst. Je nachdem, welche Informationen Sie mit Ihrem eigenen Besucherzähler erfassen und auswerten möchten, gilt es, eine Tabelle mit einer entsprechenden Zahl von Feldern anzulegen. Vier Felder bzw. vier Informationen sind dabei von besonderem Interesse.

  • id: An erster Stelle der erstellten Tabelle empfiehlt sich das Feld „id“, das der Übersichtlichkeit und der einfacheren Handhabung der Datensätze dient (wenn beispielsweise die Einträge sortiert werden sollen). Die Verwendung dieses Feldes wird empfohlen, ist aber nicht verpflichtend. Damit die Datenbank die späteren Einträge automatisch fortlaufend nummeriert und jede Nummer nur einmal vergeben wird, geben Sie außerdem die Parameter AUTO_INCREMENT und PRIMARY KEY an.
  • access_page: Die Spalte „access_page“ benötigen Sie in jedem Fall. Sie ist für den Titel der jeweiligen Webseite vorgesehen, in die der Besucherzähler eingebunden wird. Mit den Parametern NOT NULL und UNIQUE stellen Sie zusätzlich sicher, dass keine doppelten Einträge erzeugt werden. Als Datentyp können Sie für dieses Feld entweder VARCHAR oder TEXT verwenden. Darüber hinaus empfiehlt sich die Angabe der Kollation (Zeichensatz) utf8_bin, damit auch Umlaute korrekt gesichert und ausgegeben werden.
  • access_counter: Der eigentliche Besucherzähler für die HTML-Seiten verbirgt sich hinter dem INTEGER-Feld „access_counter“. Bei jedem Zugriff auf die betreffende „access_page“ erhöht sich hier der Wert automatisch um 1.
  • access_date: Der Zeitstempel für den Zugriff auf eine Seite muss zwar nicht unbedingt in der Datenbank gespeichert werden, zählt für gewöhnlich aber zu den ersten Werten, die im Rahmen eines Webcounters gesammelt werden. Mit der Nutzung des Datentyps TIMESTAMP inklusive des Attributs CURRENT_TIMESTAMP erhalten Sie aktuelle Einträge, die sowohl das Datum als auch die exakte Uhrzeit enthalten. Geben Sie zusätzlich die Regel ON UPDATE CURRENT_TIMESTAMP an, trägt die Datenbank den Zeitstempel automatisch selbst ein, ohne dass weitere Programmierungen Ihrerseits notwendig sind.

Die passende Besucherzähler-PHP-Funktion erstellen

Die Skriptsprache PHP eignet sich perfekt dazu, die Besucherdaten an die Datenbank weiterzuleiten und die für den Counter benötigten Daten im Anschluss auszulesen. Zu diesem Zweck muss das entsprechende Skript eine Funktion enthalten, die folgende drei Aufgaben erfüllt:

  1. Sie muss auf die Datenbank verlinken und diese öffnen können.
  2. Sie muss die Tabelle dahingehend überprüfen, ob ein bestimmter Datensatz bereits existiert, um anschließend entweder dessen Zugriffszähler um 1 zu erhöhen oder einen neuen Datensatz mit dem Wert 1 anlegen zu können.
  3. Sie muss den aktuellen Wert des Besucherzählers zurückgeben, damit dieser auf der Homepage entsprechend präsentiert werden kann.

Da das vollständige Skript recht komplex ist, behandeln die folgenden Absätze die einzelnen Teilschritte der Funktion, die in dieser Anleitung den beispielhaften Namen „besucher“ trägt, zunächst separat.

Der Besucherzähler-PHP-Code beginnt mit den notwendigen Parametern für die Initialisierung der Datenbank – Server und Besitzer der Datenbank, dessen Passwort und Log-in-Namen sowie die korrekte Schreibweise der Tabelle und der angelegten Pflichtfelder (wie access_page). Hierbei ist es wichtig, dass Sie die richtigen Daten eintragen, damit später die Verbindung zur Datenbank aufgebaut werden kann.

<?php
function besucher($record) {
  $db_host = "localhost";
  $db_username = "nutzername"; 
  $db_password = "passwort";
  $db_name = "datenbank-name";
  $db_table = "tabellen-name";
  $counter_page = "access_page";
  $counter_field = "access_counter";

Als nächstes folgt die Anweisung, die Datenbank zu öffnen oder eine Fehlermeldung auszugeben, wenn der Verbindungsaufbau fehlschlägt:

$db = mysqli_connect($db_host, $db_username, $db_password, $db_name) or die("Host nicht erreichbar");
$db = mysql_select_db ($db_name, $link) or die("Datenbank nicht erreichbar");

Nach diesen Eintragungen gilt es, das PHP-Skript um die entsprechenden Zeilen für die Befüllung der Datenbank zu erweitern. Entscheidend ist hierbei das Statement „INSERT…ON DUPLICATE KEY UPDATE“, das in Kombination mit der integrierten Erhöhung des Feldwertes um 1 dafür sorgt, dass der Counter wie gewünscht aktualisiert wird, wenn ein Datensatz bereits existiert:

$sql_call = "INSERT INTO ".$db_table." (".$counter_page.", ".$counter_field.") VALUES ('".$record."', 1) ON DUPLICATE KEY UPDATE ".$counter_field." = ".$counter_field." + 1"; 
mysqli_query($db, $sql_call) or die("Fehler beim Einfügen");

Damit erfüllt die Funktion bereits zwei der drei definierten Aufgaben: Sie sorgt für den Verbindungsaufbau mit der Datenbank sowie für die anschließende Erstellung der Datensätze bzw. die Aktualisierung existierender Datensätze. Da das Skript aber noch eine dritte Aufgabe zu erfüllen hat und den aktuellen Stand des Besucherzählers an die Website weitergeben soll, müssen Sie nun noch eine entsprechende Datenbankabfrage (mysql_query) einfügen und die numerische Ausgabe des Resultats definieren (mysql_fetch_assoc). Im letzten Schritt soll die Funktion die Datenbank schließen und das Ergebnis per return zurückgeben, weshalb der Schlussteil der Funktion folgendermaßen lautet:

$sql_call = "SELECT ".$counter_field. " FROM ".$db_table." WHERE ".$counter_page. " = '".$record. "'";
$sql_result = mysqli_query($db, $sql_call) or die("SQL-Anfrage fehlgeschlagen");
$row = mysqli_fetch_assoc($sql_result);
$x = $row[$counter_field];

mysqli_close($db);
return $x;
  }
?>

So sieht das fertige PHP-Skript aus

Nachdem in den vorangegangenen Abschnitten die einzelnen Teile der PHP-Funktion erläutert wurden, präsentieren wir Ihnen an dieser Stelle noch einmal das komplette Skript, mit dem Sie einen Besucherzähler kostenlos auf Ihre Homepage bringen können.

<?php
function besucher($record) {
  $db_host = "localhost";
  $db_username = "nutzername"; 
  $db_password = "passwort";
  $db_name = "datenbank-name";
  $db_table = "tabellen-name";
  $counter_page = "access_page";
  $counter_field = "access_counter";

  $db = mysqli_connect ($db_host, $db_username, $db_password, $db_name) or die("Host oder Datenbank nicht erreichbar");

  $sql_call = "INSERT INTO ".$db_table." (".$counter_page.", ".$counter_field.") VALUES ('".$record."', 1) ON DUPLICATE KEY UPDATE ".$counter_field." = ".$counter_field." + 1"; 
  mysqli_query($db, $sql_call) or die("Fehler beim Einfügen");

$sql_call = "SELECT ".$counter_field. " FROM ".$db_table." WHERE ".$counter_page. " = '".$record. "'";
$sql_result = mysqli_query($db, $sql_call) or die("SQL-Anfrage fehlgeschlagen");
$row = mysqli_fetch_assoc($sql_result);
$x = $row[$counter_field];

mysqli_close($db);
return $x;
  }
?>

Integration des Skripts in die HTML-Dokumente

Wollen Sie Ihren eigenen PHP-Besucherzähler abschließend auf einer Webseite einbinden, müssen Sie nur einige kleinere Änderungen an dem entsprechenden HTML-Dokument vornehmen. Die wichtigste Neuerung ist dabei, dass Sie die bestehende Endung .html gegen die Endung .php tauschen. Ferner sollten Sie der PHP-Variablen $page_name im Head-Bereich der Seite einen aussagekräftigen Seitennamen zuweisen:

<?php
  $page_name = "Individueller Seitenname";
?>

Mithilfe der PHP-Funktion echo können Sie den ausgewählten Seitennamen, der später in das access_page-Feld der Datenbank aufgenommen wird, außerdem zum Seitentitel machen:

<title><?php echo $page_name; ?></title>

Für die Einbindung des Besucherzähler-Skripts – hier beispielhaft webcounter.php genannt – setzen Sie nun an der gewünschten Position der Website den PHP-Befehl include ein. Im gleichen Schritt geben Sie den Inhalt der Variablen $page_name an die Funktion „besucher()“ weiter:

<?php
include "webcounter.php";
$anzahl_zugriffe = besucher($page_name);
?>

Sobald Sie diesen Code in die Seite eingebunden haben, tritt Ihr PHP-Skript in Aktion: Ist der Seitentitel (der Inhalt von $page_name) bisher in der Datenbanktabelle nicht vorhanden, sorgt es dafür, dass ein entsprechender Datensatz angelegt wird. Das Feld access_counter nimmt den Wert 1 an und die Funktion übermittelt der Website, dass ein Zugriff stattgefunden hat. Liegt ein entsprechender Eintrag bereits vor, wird der Counter in der Datenbank lediglich um 1 erhöht.

Präsentation der Besucherzahl auf der Homepage

Nachdem Sie den Besucherzähler erstellt haben und dieser damit begonnen hat, die Zugriffe Ihrer Besucher aufzuzeichnen, können Sie den aktuellen Zählerstand auch direkt auf Ihrer Webpräsenz anzeigen lassen. Der einfachste Weg dafür ist beispielsweise eine Mitteilung, die automatisch im Footer der Seite angezeigt wird. Hierfür benötigen Sie lediglich ein Footer-Element. Per echo-Befehl fügen Sie dem Text den aktuellen Wert der Variablen $anzahl_zugriffe hinzu:

< footer>
  <p>
<?php
    echo "Sie sind bereits der ", $anzahl_zugriffe, ". Besucher auf dieser Seite!";
    ?>
</p>
</footer>