Ik zou graag een pageview hit counter maken voor mijn blogviews maar dan wel een zonder dat de bots/spiders/... er ook tussen zitten. Ook refreshen van pagina's mogen er niet bij geteld worden. Iemand een idee hoe ik dit het best aanpak?
Iedereen vanaf het eerste bezoek een sessie geven met een unieke code. En die kan je gebruiken om de gebruiker te herkennen als de de hits in de database opslaat.

En verder kan je een spider met dit script detecteren, hoewel je zelf even moet nagaan welke familie van hun je site ook bezoekt.

<?php

function check_spider() {
  if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT'])) {
    return true;
  }
  else {
    return false;
  }
}
?>
Kan ik hiermee verder als ik (if check_spider() == false) { ... } doe om te weten dat het geen spider is en ik de gegevens moet opslaan in de db?
Een sessie verloopt toch als de browser is afgesloten? Dus dit is toch niet de juiste manier?
Ja, dit voldoet zeker als controle:

<?php
if(check_spider()==true) {
// ja, het is een spider
} else {
// het is een normale bezoeker!
}
?>

Een sessie verloopt inderdaad als de browser is afgesloten. Anders kan je ook met een cookie werken om de gebruiker te laten onthouden voor een kleine periode van 12 uur ofzo.
Wel == gebruiken ;)
Ja. ik heb het toegevoegd.
Het zou ook zonder die vergelijking moeten werken. Maar voor zover ik zie kan het geloof ik geen kwaad.
Ok, ik ga het even proberen. Zal jullie op de hoogte houden.

Reageren