|
Statistieken verschaffen een heleboel nuttige informatie over je website.
Gegevens die je kunt opslaan zijn:
- het aantal bezoekers;
- tijdstippen van bezoek;
- welke pagina's bezocht werden;
- met welk besturingssysteem de website bezocht werd;
- ...
Het
onderdeeltje dat ik in dit artikel bespreek is het uitlezen van de
browser waarmee de bezoeker de website bezoekt.
Met JavaScript?
De gebruikte browser kun je met JavaScript achterhalen met behulp van het
object navigator.userAgent , maar aangezien JavaScript kan
uitgeschakeld worden in de browser, maken we voor een statistiekenscript beter
gebruik van PHP om een zo waarheidsgetrouw mogelijk beeld te krijgen.
PHP wordt immers op de server uitgevoerd en kan dus niet door de gebruiker in de browser
uitgeschakeld worden.
Browservariabele gebruiken
PHP heeft een ingebouwde variabele $_SERVER['HTTP_USER_AGENT']
waarmee het gebruikte besturingssysteem en browser kan achterhaald worden. Deze
variabele geeft in jouw geval deze waarde door:
Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.11) Gecko/20071127
Firefox/2.0.0.11
Je merkt al meteen dat er heel wat informatie in deze string zit opgeslagen,
maar dat deze niet echt gebruiksvriendelijk gepresenteerd wordt. Het script dat
we nu gaan schrijven zal wel op een duidelijke manier de gebruikte browser
tonen.
Variabele aanpassen
We bouwen een nieuwe functie op:
<?php
function haal_browser()
{
}
?>
In deze functie gaan we eerst en vooral een variabele declareren waarin we
$_SERVER['HTTP_USER_AGENT'] stoppen. We controleren eerst met de
functie isset() of
er wel degelijk een waarde via de browser wordt doorgegeven. De servervariabele
veranderen we met de functie
strtolower()
naar kleine letters.
<?php
$browser_user_agent = ( isset($_SERVER['HTTP_USER_AGENT']) ) ? strtolower($_SERVER['HTTP_USER_AGENT']) : '';
?>
Merk op dat we de verkorte if-else structuur gebruiken volgens deze syntaxis:
if-statement ? true : false;
Browsers controleren
We scripten nu het gedeelte dat controleert welke browser in de
servervariabele terug te vinden is.
Dit gebeurt met een simpele if-check met
behulp van de functie
stristr(). Deze functie is hoofdletteronafhankelijk, dus het maakt niet uit
of je nu "Opera", "opera" of "OPERA" zou invoeren.
<?php
if(stristr($browser_user_agent, "Opera"))
{
return "Opera";
}
?>
In ons script checken we op de meest gebruikte browsers:
<?php
if(stristr($browser_user_agent, "Opera"))
{
return "Opera";
}
elseif(stristr($browser_user_agent, "Msie"))
{
return "Internet Explorer";
}
elseif(stristr($browser_user_agent, "Netscape"))
{
return "Netscape";
}
elseif(stristr($browser_user_agent, "Firefox"))
{
return "Firefox";
}
elseif(stristr($browser_user_agent, "Gecko"))
{
return "Mozilla";
}
else
{
return "Onbekend";
}
?>
opgelet
De volgorde van de check is uitermate belangrijk aangezien in de
servervariabele dikwijls dezelfde sleutelwoorden voorkomen.
Zo starten bijna alle servervariabelen met het sleutelwoord "mozilla", hetgeen niet altijd
betekent dat je surft met de browser Mozilla. Vandaar moet je eerst zoeken
naar andere sleutelwoorden die wel uniek zijn.
Resultaat
Je script is nu zo goed als klaar. Het enige dat ons nog te doen staat, is
het opnemen van de browser in een outputvariabele. Dat doen we zo:
<?php
$browser = haal_browser();
?>
|