PHP  »  Articoli  »  Soluzioni in PHP 

Contare gli utenti online con PHP

di: Claudio Garau     29 Maggio 2009

Esistono diverse procedure per creare un script PHP con cui contare il numero di utenti on line su una determinata pagina Web o su un sito

Nel corso di questa trattazione verrà proposto un esempio basato sull'utilizzo combinato di MySQL per l'archiviazione dei dati e delle sessioni per la memorizzazione degli accessi in modo univoco.

La struttura del database

La realizzazione di un un'applicazione destinata al conteggio e alla visualizzazione del numero di utenti on line richiederà:

  • un database, chiamato per esempio statistiche;
  • un file, chiamato ad esempio config.php, contenente le funzioni e i parametri di connessione al DBMS e di selezione del database
  • un file con il codice per il conteggio degli utenti, per la stampa a video dei risultati e per la cancellazione dei record obsoleti (chiamato ad esempio utenti_on_line.php).

In pratica il database verrà utilizzato per memorizzare le informazioni relative agli utenti, il file di configurazione permetterà all'applicazione di interagire con MySQL e il file dello script si occuperà di restituire in output i dati riguardanti gli utenti online in uno specifico intervallo di tempo; una volta superato questo intervallo le informazioni relative ad una sessione verranno cancellate in quanto obsolete.

All'interno del database statistiche sarà presente una sola tabella, chiamata ad esempio utenti_on_line, essa dovrà contenere 3 campi:

  • un campo id, univoco e auto-incrementale che fungerà da chiave primaria per la tabella;
  • un campo sessione destinato a contenere l'identificatore numerico prodotto dalla funzione session_id() e associato ad ogni singola sessione generata dall'ingresso di un nuovo utente sulla pagina.
  • un ultimo campo chiamato timestamp in cui verrà registrato il momento esatto della connessione di un utente (il timestamp è una stringa che rappresenta il numero di secondi a partire dalle ore 00:00:00 del 1 gennaio 1970 UTC).

Di seguito verrà proposto l'SQL necessario per la creazione della tabella e dei relativi campi:

CREATE TABLE `utenti_on_line` (
  `id` int(11) NOT NULL auto_increment,
  `sessione` varchar(50) NOT NULL,
  `timestamp` int(11) default '0',
  PRIMARY KEY  (`id`)
);

In realtà il campo id non è fondamentale per il funzionamento dell'applicazione, è stato comunque introdotto per correttezza formale e perché potrebbe tornare utile nel caso in cui si desideri contare il numero di record memorizzati dallo script nel corso del suo funzionamento. Il tipo di dato TIMESTAMP è supportato nativamente da MySQL, in alternativa è quindi possibile lasciare che sia il DBMS a registrarlo impostando come valore predefinito il CURRENT_TIMESTAMP.

Guide PHP

Guida Zend Framework

Diventate professionisti dello sviluppo Web. Zend Framework è lo...

Guida Applicazioni Facebook con PHP

Come realizzare un'applicazione per Facebook. Dalle basi della...

Guida PHP con Windows e IIS

Installare ambienti per lo sviluppo e la produzione di applicazioni...

Altre guide

Newsletter @PHP

Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Google AdWords Base

27 Febbraio 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

28 Marzo 2012 a Roma
Disponibilità: 7 Posti