Sunday, November 6, 2011

Jednostavan PHP brojač unikatnih poseta

Jednostavan PHP brojač poseta je brojao posete pri svakom učitavanju stranice. To znači, ako jedan korisnik učita stranicu nekoliko puta ili učita više stranica (pretpostavimo da se na svakoj stranici nalazi brojač) brojač će svaki put zabeležiti posetu. Naravno, to nije stvaran broj posetilaca, već više odgovara broju pregledanih stranica (pageviews).

Da bismo imali stvaran broj posetilaca, moramo svakog posetioca računati samo jednom i pored toga što on učita više stranica u toku jedne posete. Ovo se može uraditi pomoću kolačića.


Evo i koda:

<?php
function brojac_v2()
{
    $naziv_fajla = "brojac unikata.txt";
    if (!(isset($_COOKIE["poseta"])))
    {
        setcookie("poseta", "dan", time() + 60 * 60 * 24, "/"); 
        file_put_contents($naziv_fajla, "X", FILE_APPEND);
    }
    if (file_exists($naziv_fajla))
        $broj_poseta = filesize($naziv_fajla);
    else
        return 0;

    return $broj_poseta;
}
?>


Prvo proveravamo da li kolačić postoji. Ako postoji to znači da je posetilac već bio na sajtu, a ako ne postoji onda ga kreiramo. Ovde smo kolačiću dali naziv "poseta", a vrednost je "dan". Rok važenja je 60 * 60 * 24 = 86400 sekundi, tj 1 dan. To znači da će ovaj kod brojati samo unikatne posetioce u intervalu od 24h. Ako isti posetilac dođe nakon 24h on se računa kao novi posetilac.



Funkciju pozivamo na sledeći način:

<?php

$broj_unikatnih_poseta = brojac_v2();
echo $broj_unikatnih_poseta;

?>



U kombinaciji sa brojačem iz prethodnog članka, možemo napraviti brojač unikatnih poseta i brojač pregledanih stranica.

Možemo dodati još dva brojača koji bi merili unikatne posete u toku 7 dana i 30 dana. Na ovaj način pomoću jednostavnih brojača možemo napraviti statistiku posećenosti sajta.


Na primer:
  • ako podelimo broj poseta sa brojem unikatnih poseta, možemo dobiti prosečan broj pregledanih stranica po posetiocu.
  • ako pogledamo odnos broja unikatnih poseta za 30 dana i za 24 h, možemo zaključiti sledeće: ako je taj broj približno isti, to znači da nam stalno dolaze novi posetioci na sajt, a ako je broj unikatnih poseta za 30 dana znatno manji od broja unikatnih poseta za 24h to znači da imamo dosta posetilaca koji često dolaze na sajt. Zašto? Pa zato što se njihova poseta kod brojača za "mesečne unikate" evidentira jednom u 30 dana, dok se kod "dnevnih unikata" evidentira svaki dan kad posete sajt (pod uslovom da je prošlo 24h). Ako podelimo ova dva broja, dobijamo prosečan broj poseta jednog posetioca u toku mesec dana.

No comments: