Secondo me il metodo migliore è il conteggio delle sessioni. Registri l'ID di sessione di ogni utente e ad ogni visita verifichi se è già presente...se è presente non incrementi il contatore, altrimenti registri il nuovo ID e incrementi il contatore.
Questo è uno script semplice semplice che avevo scritto tempo fa...usa un file TXt ma il concetto è applicabile anche un DB ovviamente:
CONTATORE BASATO SU FILE TXT:
Codice PHP:
if(!session_id()) { session_start(); }
$filecounter = "./counter.txt";
$res = fopen($filecounter, "r");
if(!isset($_SESSION['user']))
{
$_SESSION['user'] = session_id();
if(filesize($filecounter) > 0)
$cur = fread($res, filesize($filecounter));
else
$cur = 0;
$next = $cur+1;
$res = fopen($filecounter, "w+");
fwrite($res, $next);
}
else if($_SESSION['user'] == session_id())
{
$next = fread($res, filesize($filecounter));
}
echo "Il sito è stato visitato ".$next." volte";
Spero ti sia utile
ciauz