I contatori visite re­gi­stra­no la frequenza con cui un sito web viene visitato, di solito indicando il numero di vi­si­ta­to­ri nella parte inferiore della homepage. Mentre ge­ne­ral­men­te l'output visivo dei dati utente ha solo uno scopo rap­pre­sen­ta­ti­vo, molti operatori sfruttano i dati ottenuti relativi ai vi­si­ta­to­ri anche per l'analisi web. A tal fine la maggior parte di loro ricorre alle pos­si­bi­li­tà integrate offerte dai web counter dei Content Ma­na­ge­ment System o dei siti già pronti, o in al­ter­na­ti­va ac­qui­sta­no un contatore da uno dei vari fornitori online. Spesso queste soluzioni fanno uso dei noti “pixel di tracking” o di ap­pli­ca­zio­ni Ja­va­Script simili facenti parte del­l'am­bi­to dell’analisi dei file di log, le quali re­gi­stra­no in­for­ma­zio­ni spe­ci­fi­che ag­giun­ti­ve sui singoli utenti oltre al mero numero di vi­si­ta­to­ri.

Per non dipendere da un fornitore esterno di servizi ed essere al sicuro quando si tratta di pro­te­zio­ne dei dati, è anche possibile creare un proprio contatore visite e in­te­grar­lo sul proprio spazio web. Tutto ciò di cui avete bisogno è un database o un file di testo e un po’ di co­no­scen­za di base del lin­guag­gio PHP.

Registra il tuo dominio
  • Domain Connect gratuito per una con­fi­gu­ra­zio­ne facile del DNS
  • Cer­ti­fi­ca­to SSL Wildcard gratuito
  • Pro­te­zio­ne privacy inclusa

Come fun­zio­na­no le soluzioni web counter di­spo­ni­bi­li in rete per il download?

Il modo più semplice per im­ple­men­ta­re un contatore sul vostro sito web è senza dubbio quello di scaricare uno script già pronto. I contatori visite a pagamento e gratuiti dif­fe­ri­sco­no prin­ci­pal­men­te per la varietà di servizi che offrono. Se optate per una soluzione a pagamento, in genere ri­ce­ve­re­te anche sta­ti­sti­che con­te­nen­ti molto più che le semplici in­for­ma­zio­ni sul traffico. Il grado di dettaglio di queste in­for­ma­zio­ni varia a seconda della re­gi­stra­zio­ne delle attività dei vi­si­ta­to­ri, se avvenga esclu­si­va­men­te lato server o se invece lato client. Tuttavia in entrambi i casi i seguenti parametri di base sono re­gi­stra­ti come standard:

  • Ora e data di accesso
  • Indirizzo IP dei vi­si­ta­to­ri
  • Client del vi­si­ta­to­re
  • URL sorgente

A seconda della con­fi­gu­ra­zio­ne il server può assegnare un iden­ti­fi­ca­to­re univoco, il cookie di sessione, a ogni singolo vi­si­ta­to­re durante il suo primo accesso. In questo modo le sta­ti­sti­che del contatore visite possono essere uti­liz­za­te per con­si­de­ra­re se è la prima volta che un utente richiama una pagina o se ha già visitato svariate volte le vostre pagine. Con l'aiuto di Ja­va­Script o Adobe Flash lato client è possibile ottenere ulteriori in­for­ma­zio­ni. Ad esempio il tracking (in italiano: “trac­cia­men­to”) rivela quali esten­sio­ni del sistema operativo e del browser sono state uti­liz­za­te dal vi­si­ta­to­re così come le sue im­po­sta­zio­ni di ri­so­lu­zio­ne dello schermo. Queste ultime in­for­ma­zio­ni possono svolgere un ruolo decisivo nel­l'ot­ti­miz­za­zio­ne dei siti web per i di­spo­si­ti­vi mobili.

Con la maggior parte dei provider è possibile scegliere tra diversi design e di­men­sio­ni per il contatore visite: basta infatti se­le­zio­na­re uno dei design di­spo­ni­bi­li e la di­men­sio­ne de­si­de­ra­ta e con un clic sull’apposito tool verrà generato il codice HTML per la sua im­ple­men­ta­zio­ne. L’in­se­ri­men­to di questo frammento di codice sul vostro sito web, nella posizione che ritenete più opportuna, attiverà quindi il mo­ni­to­rag­gio dei vi­si­ta­to­ri.

Come creare un contatore visite

Se de­si­de­ra­te creare un vostro contatore visite per la vostra homepage, per prima cosa è ne­ces­sa­rio che rea­liz­zia­te le strutture ap­pro­pria­te. Ad esempio gli accessi che sono stati re­gi­stra­ti devono essere prima salvati: questo è infatti l'unico modo in cui il web counter potrà suc­ces­si­va­men­te essere in grado di vi­sua­liz­za­re lo stato attuale e fornire sta­ti­sti­che si­gni­fi­ca­ti­ve. Per i siti web più piccoli è suf­fi­cien­te un semplice file di testo da inserire sul server e da spe­ci­fi­ca­re come luogo di ar­chi­via­zio­ne nello script. Tuttavia più ampi sono il vostro progetto web e il traffico medio, più sensato è l’utilizzo di un database come MySQL per la me­mo­riz­za­zio­ne delle in­for­ma­zio­ni. Prima di passare ad occuparci dello script vero e proprio, la sezione suc­ces­si­va si sofferma a trattare la ri­spet­ti­va con­fi­gu­ra­zio­ne del database.

Con­fi­gu­ra­re il database MySQL per il web counter

Ge­ne­ral­men­te il col­le­ga­men­to a un database è associato a più query ed è quindi più complesso rispetto al recupero delle in­for­ma­zio­ni da un semplice file di testo. Pertanto vi conviene ve­ri­fi­ca­re in anticipo se l'u­ti­liz­zo di MySQL e simili valga la pena o se invece rallenti inu­til­men­te il vostro progetto. A seconda del tipo di in­for­ma­zio­ni che de­si­de­ra­te inserire e valutare con il vostro contatore visite, è ne­ces­sa­rio creare una tabella con un numero cor­ri­spon­den­te di campi. Par­ti­co­lar­men­te im­por­tan­ti sono i seguenti quattro campi:

  • id Al primo posto della tabella creata si consiglia il campo "id", che viene uti­liz­za­to per la chiarezza e la sem­pli­ci­tà nella gestione dei record di dati, come ad esempio nel caso in cui le voci debbano essere ordinate. L'uso di questo campo è rac­co­man­da­to ma non ob­bli­ga­to­rio. Per garantire che il database sia numerato au­to­ma­ti­ca­men­te in modo con­se­cu­ti­vo e che ogni numero sia assegnato una sola volta, è ne­ces­sa­rio spe­ci­fi­ca­re anche i parametri AUTO_INCREMENT e PRIMARY KEY.
  • access_page Questa colonna è sempre in­di­spen­sa­bi­le poiché fa ri­fe­ri­men­to al titolo del sito web in cui è integrato il contatore visite. Ser­ven­do­vi dei parametri NOT NULL e UNIQUE potete ul­te­rior­men­te ac­cer­tar­vi che non vengano create voci doppie. Per questo campo è possibile uti­liz­za­re VARCHAR o TEXT come tipo di dati. Inoltre si consiglia di spe­ci­fi­ca­re il collation (set di caratteri) utf8_bin, in modo che anche gli accenti vengano salvati e inviati cor­ret­ta­men­te.
  • access_counter Il contatore visite effettivo delle pagine HTML si nasconde dietro al campo INTEGER "access_counter". Ogni volta che si accede alla "pagina access_page" in questione, il valore aumenta au­to­ma­ti­ca­men­te di 1.
  • access_date Sebbene la marca temporale (timestamp) per accedere a una pagina non debba ne­ces­sa­ria­men­te essere salvata nel database, di solito è uno dei primi valori raccolti da un web counter. Uti­liz­zan­do il tipo di dati TIMESTAMP, compreso l'at­tri­bu­to CURRENT_TIMESTAMP, ottenete le voci correnti che con­ten­go­no sia la data che l'ora esatta. Se spe­ci­fi­ca­te anche la regola ON UPDATE CURRENT_TIMESTAMP, il database inserisce au­to­ma­ti­ca­men­te il timbro dell'ora senza che sia ne­ces­sa­ria un'ul­te­rio­re pro­gram­ma­zio­ne.

Creare la corretta funzione del contatore PHP

Il lin­guag­gio di scripting PHP è perfetto per inoltrare i dati dei vi­si­ta­to­ri al database e quindi esaminare i dati necessari per il contatore. A tal fine lo script cor­ri­spon­den­te deve contenere una funzione che esegua le seguenti tre attività:

  1. deve essere in grado di stabilire un col­le­ga­men­to al database e aprire quest’ultimo.

  2. Deve con­trol­la­re la tabella per vedere se un par­ti­co­la­re record esiste già, e quindi aumentare il suo contatore di accesso di 1 o creare un nuovo record con il valore 1.

  3. Deve re­sti­tui­re il valore corrente del contatore visite in modo che possa essere pre­sen­ta­to cor­ret­ta­men­te sulla homepage.

Siccome lo script completo è ab­ba­stan­za complesso, i paragrafi seguenti trattano se­pa­ra­ta­men­te i singoli sot­to­pun­ti della funzione, che in questa guida è stata chiamata "vi­si­ta­to­re".

Il codice PHP del contatore visite comincia con i parametri necessari per ini­zia­liz­za­re il database - server e pro­prie­ta­rio del database, la sua password e il suo nome di login così come l'or­to­gra­fia corretta della tabella e dei campi richiesti (come access_page). È im­por­tan­te inserire i dati corretti in modo che la con­nes­sio­ne al database possa essere stabilita in un secondo momento.

<?php
function visitatore($record) {
    $db_host = "localhost";
    $db_username = "nome-utente"; 
    $db_password = "password";
    $db_name = "nome-database";
    $db_table = " nome-tabelle";
    $counter_page = "access_page";
    $counter_field = "access_counter";

Il passo suc­ces­si­vo consiste nel­l'a­pri­re il database o nell’inviare un messaggio di errore se la con­nes­sio­ne fallisce.

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

Dopo aver inserito queste voci, lo script PHP deve essere ampliato con le stringhe cor­ri­spon­den­ti per riempire il database. Decisiva è l'af­fer­ma­zio­ne "INSERT... ON DUPLICATE KEY UPDATE", che in com­bi­na­zio­ne con l'aumento integrato di 1 del valore di campo ga­ran­ti­sce che il contatore venga ag­gior­na­to come de­si­de­ra­to se esiste già un set di dati:

$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("Errore di inserimento");

Ciò significa che la funzione assolve già due dei tre compiti definiti: fornisce il col­le­ga­men­to al database, la suc­ces­si­va creazione dei set di dati e l'ag­gior­na­men­to di quelli esistenti. Tuttavia, poiché lo script ha un terzo compito e si suppone che trasmetta al sito web lo stato attuale del contatore visite, è ora ne­ces­sa­rio inserire una query del database cor­ri­spon­den­te (mysql_query) e definire l'output numerico del risultato (mysql_fetch_assoc). Nel­l'ul­ti­mo passaggio la funzione dovrebbe chiudere il database e re­sti­tui­re il risultato tramite return, per cui la parte finale della funzione è come segue:

$sql_call = "SELECT ".$counter_field. " FROM ".$db_table." WHERE ".$counter_page. " = '".$record. "'";
$sql_result = mysqli_query($db, $sql_call) or die("SQL-richiesta fallita");
$row = mysqli_fetch_assoc($sql_result);
$x = $row[$counter_field];
mysqli_close($db);
return $x;
    }
?>

Lo script PHP de­fi­ni­ti­vo

Dopo che le singole parti della funzione PHP sono state spiegate nelle sezioni pre­ce­den­ti, vi pre­sen­tia­mo di nuovo lo script completo con il quale potete integrare gra­tui­ta­men­te un contatore visite sulla homepage del vostro sito web.

<?php
function visitatore($record) {
    $db_host = "localhost";
    $db_username = "nome-utente"; 
    $db_password = "password";
    $db_name = "nome-database";
    $db_table = "nome-tabelle";
    $counter_page = "access_page";
    $counter_field = "access_counter";
    $db = mysqli_connect ($db_host, $db_username, $db_password, $db_name) or die("Host o database non raggiungibile");
    $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("Errore nell'inserimento");
$sql_call = "SELECT ".$counter_field. " FROM ".$db_table." WHERE ".$counter_page. " = '".$record. "'";
$sql_result = mysqli_query($db, $sql_call) or die("SQL-richiesta fallita");
$row = mysqli_fetch_assoc($sql_result);
$x = $row[$counter_field];
mysqli_close($db);
return $x;
    }
?>

Integrare lo script nei documenti HTML

Se de­si­de­ra­te integrare il vostro contatore visite PHP in una pagina web, è suf­fi­cien­te che ap­por­tia­te alcune modifiche minori al documento HTML cor­ri­spon­den­te. La modifica più im­por­tan­te è che si scambierà l'attuale esten­sio­ne .html con l'e­sten­sio­ne .php. Dovreste anche assegnare un nome di pagina si­gni­fi­ca­ti­vo alla variabile PHP $page_name nell'area del header:

<?php
    $page_name = "Nome di pagina personalizzato";
?>

Si può anche usare la funzione eco PHP per fare diventare il nome che avete scelto per la pagina il titolo della pagina, dopodiché verrà aggiunto al campo access_page del database.

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

Per l'in­te­gra­zio­ne dello script del contatore visite, qui chiamato web­coun­ter.php come esempio, eseguite il comando PHP include nella posizione de­si­de­ra­ta del vostro sito web. Passare poi il contenuto della variabile $page_name alla funzione "vi­si­ta­to­re()":

<?php
include "webcounter.php";
$numero_accessi = visitatore($page_name);
?>

Non appena avrete incluso questo codice nella pagina, entra in azione lo script PHP: se il titolo della pagina (il contenuto di $page_name) non è ancora di­spo­ni­bi­le nella tabella del database, as­si­cu­ra­te­vi che venga creato un record di dati cor­ri­spon­den­te. Il campo access_counter assume il valore 1 e la funzione trasmette al sito web che si è ve­ri­fi­ca­to un accesso. Se esiste già una voce cor­ri­spon­den­te, il contatore viene aumentato solo di 1 nel database.

Pre­sen­ta­zio­ne del numero di vi­si­ta­to­ri sulla homepage

Dopo aver creato il contatore visite e questo ha iniziato a re­gi­stra­re gli accessi dei vostri vi­si­ta­to­ri, potete attivare lo stato dei vi­si­ta­to­ri anche di­ret­ta­men­te sulla vostra pagina web. Un modo semplice per farlo è ad esempio un avviso che viene mostrato au­to­ma­ti­ca­men­te nel footer della pagina. A tal fine ne­ces­si­ta­te solo di un elemento footer. At­tra­ver­so il comando echo ag­giun­ge­te al testo il valore attuale delle variabili $numero_accessi:

< footer>
    <p>
<?php
        echo "Siete la visita numero", $numero_accessi, "di questa pagina!";
        ?>
</p>
</footer>
Vai al menu prin­ci­pa­le