Bezoekersteller: zo maak je een visitor counter voor je website

  1. Home
  2. Hosting
  3. Bezoekersteller
Bezoekersteller

Wat doet een bezoekersteller op je website?

Bezoekerstellers houden bij hoe vaak een website wordt bezocht en geven dan ook meestal onderaan de website het aantal bezoekers weer. Hoewel de visuele weergave van deze gebruikersdata meestal een louter illustrerend doel heeft, gebruiken veel websitebeheerders de bezoekersaantallen tegenwoordig ook voor hun eigen webanalyses. De meesten vertrouwen hiervoor op de geïntegreerde webtelleropties van contentmanagementsystemen of sitebuilders, of ze kopen een visitor counter of hit teller van één van de verschillende online aanbieders. Deze oplossingen maken vaak gebruik van de zogenoemde telpixels. Deze zijn vooral bekend in de wereld van de logbestandanalyses of soortgelijke JavaScript-toepassingen. Die toepassingen registeren naast het aantal bezoekers ook specifieke informatie over de individuele gebruikers.

Om niet afhankelijk te zijn van een externe serviceprovider en om het op veilig te spelen met de vereisten omtrent privacy, kun je ervoor kiezen om je eigen bezoekersteller te maken en deze op je eigen webspace te laten draaien. Je hebt alleen een database of een text file nodig, en basiskennis van PHP.


Hoe werken de downloadbare webteller-oplossingen dan?

De eenvoudigste manier om een bezoekersteller op je website te integreren is ongetwijfeld het downloaden van een volledig script. Het verschil tussen gratis en betaalde bezoekerstellers is vooral de functieomvang. Beide zullen natuurlijk bezoekers tellen. Maar als je kiest voor een betaalde versie, ontvang je meestal ook visueel uitgewerkte statistieken met informatie die veel verder gaat dan alleen de weergave van websitetraffic. Hoe gedetailleerd deze informatie is, hangt ervan af of de registratie van de bezoekersactiviteiten alleen op de server gebeurt, of ook aan de client-zijde (bij de websitebezoeker). In beide gevallen zijn echter de volgende standaardparameters opgenomen:

  • Tijdstip van bezoek
  • IP-adres van de bezoeker
  • Client van de bezoeker
  • Bron-URL

De server kan, afhankelijk van de configuratie, een unieke identificatie (de zogeheten session cookie) toewijzen aan elke individuele bezoeker bij zijn eerste toegang of bezoek. In de statistieken van de bezoekersteller kun je zien of dit het eerste sitebezoek is voor een gebruiker, of dat hij of zij meerdere pagina's heeft bezocht. Met behulp van JavaScript of Adobe Flash aan de client-zijde kun je de hoeveelheid informatie die je verzamelt verhogen. De tracking toont bijvoorbeeld welke besturingssysteem en welke browserextensies de bezoeker heeft gebruikt, of zelfs welke schermresolutie is ingesteld. Deze laatste set aan informatie kan een cruciale rol spelen bij het optimaliseren van websites voor bijvoorbeeld mobiele apparaten.

Bij de meeste aanbieders kun je kiezen tussen verschillende ontwerpen en formaten om de bezoekersteller op je website weer te geven. Kies eenvoudigweg een van de beschikbare ontwerpen en selecteer de door jou gewenste grootte en genereer met één klik via de tool in kwestie een HTML-code. Deze snippet wordt vervolgens geïntegreerd op de door jou gekozen plek op je website om zo tot slot de tracking van de bezoekers te activeren.


Je eigen bezoekersteller maken: een tutorial

Als je een eigen hit teller voor je website wilt maken, moet je eerst de juiste structuren aanmaken. De bezoekerstoegangen moeten niet enkel geregistreerd worden maar ook worden opgeslagen. Pas dan kan de teller later de actuele stand weergeven en zinvolle statistieken leveren. Voor kleinere websites kan een eenvoudige text file, dat je op je server plaatst en als locatie in het script opgeeft, de klus al klaren. Echter, hoe groter je webproject en de gemiddelde traffic op je site zijn, hoe groter de kans dat je een database zoals MySQL moet gebruiken om de informatie op te slaan. Voordat we in het daadwerkelijke script duiken, bespreken we kort de bijbehorende databaseconfiguratie in de volgende sectie.


MySQL-database voor webtellers configureren

Een koppeling met een database is over het algemeen complexer dan enkel informatie ophalen uit een eenvoudige text file. Er zijn ook meer voorwaarden aan verbonden. Ga dus op voorhand na of het gebruik van MySQL en vergelijkbare databases de moeite loont, of je project juist te veel gaat vertragen. Afhankelijk van de informatie die je wilt vastleggen en evalueren met je bezoekersteller, moet je een tabel met een overeenkomstig aantal velden maken. Vier informatievelden zijn in het bijzonder interessant:

  • id: Wanneer je een tabel maakt, is het aan te raden om het 'id'-veld op de eerste plaats in te stellen. Dit veld wordt gebruikt om de data records te verduidelijken en gemakkelijker te kunnen verwerken (bijvoorbeeld als de gegevens moeten worden gesorteerd). Het gebruik van dit id-veld wordt aanbevolen, maar is niet verplicht. Om ervoor te zorgen dat de database automatisch de volgende vermeldingen achter elkaar nummert en dat elk nummer slechts één keer wordt toegekend, moet je de parameters AUTO_INCREMENT en PRIMARY KEY opgeven.
  • access_page: De kolom 'access¬page' is daarentegen altijd vereist. Deze is bestemd voor de titel van de website waar de bezoekersteller op is geïntegreerd. Met de parameters NOT NULL en UNIQUE kun je er ook voor zorgen dat er geen dubbele invoer wordt weergegeven. Je kunt bijvoorbeeld VARCHAR of TEXT als gegevenstype voor dit veld gebruiken.
  • access_counter: De eigenlijke bezoekersteller voor de HTML-pagina's verbergt zich achter het INTEGER-veld 'access_counter'. Elke keer dat de 'access_page' wordt benaderd, wordt de waarde automatisch met 1 verhoogd.
  • access_date: De tijdstempel voor het openen van een pagina hoeft niet noodzakelijkerwijs in de database te worden opgeslagen, maar is meestal een van de eerste waarden die binnen een webteller worden verzameld. Als je het datatype TIMESTAMP inclusief het attribuut CURRENT_TIMESTAMP gebruikt, krijg je de actuele gegevens die zowel de datum als de exacte tijd bevatten. Als je ook de regel ON UPDATE CURRENT_TIMESTAMP ingeeft, voert de database automatisch de tijdstempel zelf in, zonder enige verdere programmering van jouw kant.

Maak de geschikte bezoekersteller PHP-functie

De scripttaal PHP is perfect geschikt voor zowel het overbrengen van de bezoekersgegevens naar de database als voor het uitlezen van de datum die nodig is voor de teller. Ben je nog niet bekend met PHP? Dan kan onze beginnershandleiding je verderhelpen. Het PHP-script voor de bezoekersteller moet over een functie beschikken die aan de volgende drie eisen voldoet:

  1. De functie moet gekoppeld zijn aan de database en in staat zijn deze te openen.
  2. De functie moet de tabel controleren om te zien of er al een gespecificeerd bestand bestaat, en dan ofwel de toegangsteller met 1 verhogen of een nieuwe dataset met een waarde van 1 aanmaken.
  3. De functie moet de actuele waarde van de bezoekersteller terugsturen zodat deze op de website kan worden weergegeven.

Aangezien het volledige script vrij complex is, behandelen de volgende secties elk van de afzonderlijke sub-stappen van de functie op zich. In deze tutorial wordt de functie voor het gemak 'visitor’ genoemd.

De bezoekersteller PHP-code begint met de noodzakelijke parameters voor het initiëren van de database. Deze zijn de volgende: de databaseserver, het wachtwoord en de inlognaam van de database, en ook de juiste spelling van de tabel en de verplichte velden (zoals access_page). Het is belangrijk dat hier de juiste gegevens worden ingevoerd, zodat later een verbinding met de database kan worden gemaakt.

<?php
function visitor($record) {
  $db_host = "rdbms.strato.de";
  $db_username = "gebruikersnaam";
  $db_password = "wachtwoord";
  $db_name = "database-naam";
  $db_table = "tabel-naam";
  $counter_page = "access_page";
  $counter_field = "access_counter";

Hierna komt de instructie die gebruikt wordt om de database te openen of een foutmelding uit te sturen als de verbinding mislukt.

$db = mysqli_connect($db_host, $db_username, $db_password, $db_name) or die("Host not accessible");
$db = mysql_select_db ($db_name, $link) or die("Database not accessible");

Na deze invoer moet het PHP-script worden uitgebreid met de bijbehorende regels voor het vullen van de databank. De invoer van 'INSERT .... ON DUPLICATE KEY UPDATE' in combinatie met de geïntegreerde verhoging van de field value met 1 is van cruciaal belang om ervoor te zorgen dat de teller naar behoren wordt geüpdatet als een dataset al blijkt te bestaan.

$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("Error while entering");

Hiermee vervult de functie reeds twee van de drie omschreven taken. Ze zorgt voor de verbinding met de database en voor de verdere aanmaak van de datasets of het bijwerken van bestaande datasets. Omdat het script nog steeds moet voldoen aan een derde vereiste om de actuele status van de bezoekersteller - dus het exacte aantal bezoekers dat geregistreerd is op dat moment - terug te sturen naar de website, moet je nu een overeenkomstige database-query toevoegen (mysql_query) en de numerieke output van de resultaten definiëren (mysql_fetch_assoc). In de laatste stap moet de functie de database sluiten en het resultaat teruggeven aan de website via return. Het laatste deel van de functie gaat als volgt:

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

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

Zo ziet het afgewerkte PHP-script er uit

Nadat de afzonderlijke onderdelen van de PHP-functie in de vorige secties al zijn uitgelegd, stellen we je in deze sectie nu het volledige script voor waarmee je een gratis bezoekersteller aan je homepage kunt toevoegen.

<?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; } ?>

De integratie van het script van de bezoekersteller in de HTML-documenten

Als je je eigen afgewerkte PHP bezoekersteller wilt integreren op je website, dan moet je een paar kleine wijzigingen aanbrengen in het bijbehorende HTML-document. De belangrijkste update is het wijzigen van de bestaande .html-extensie naar de .php-extensie. Je moet ook een duidelijke en unieke naam toekennen aan de PHP-variabele $page_name in de headlinevan de pagina.

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

Met behulp van de PHP-functie echo kan je de uitgekozen paginanaam, die later in het access_page-veld van de databank komt, tot titel van de site maken.

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

Om het script van de bezoekersteller te integreren - in dit voorbeeld webcounter.php genoemd - geef je nu de PHP-opdracht include op in de gewenste positie op je website. In dezelfde stap geef je ook de inhoud van de variabele $page_name door aan de 'visitor' functie:

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

Zodra je deze visitor counter code in de pagina hebt ingebed, treedt je PHP-script in werking: als de paginatitel (de inhoud van $page_name) nog niet bestaat in de tabel van de database, zorgt het ervoor dat er een overeenkomstig bestand wordt aangemaakt. Het veld access_counter krijgt de waarde 1 en de functie vertelt de website dat er een bezoeker is geweest. Als er al een eerdere overeenkomstige vermelding bestaat, wordt de teller in de database ook slechts met 1 verhoogd.

De presentatie van de bezoekersteller op de website

Nadat je de bezoekersteller hebt aangemaakt en deze is begonnen met het registreren van de individuele bezoeken aan je website, kun je de actuele tellerstand ook direct op je website weergeven. De eenvoudigste manier om dit te doen is bijvoorbeeld door een bericht automatisch in de voettekst van de pagina te laten verschijnen. Alles wat je hiervoor nodig hebt is een voettekst-element. Met het echo-commando voeg je de huidige waarde van de variabele $number_accesses toe aan de tekst:

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

Een visitor counter is een handige marketingtool op je website, maar wordt nu vooral gebruikt om het aantal clicks op specifieke content, zoals video’s of blogposts, weer te geven. Daarnaast natuurlijk ook voor gegevensverzameling. Met ons overzicht weet je dus hoe je een bezoekersteller zelf kunt maken. Wil je nog meer tips over het maken van een website? Lees bijvoorbeeld onze handleiding over het embedden van video met HTML. Of ontdek hoe je de snelheid van je website kunt verbeteren.