di: Claudio Garau 29 Maggio 2009
Un volta creato e strutturato il database, il prossimo passaggio sarà quello di creare un semplice file di configurazione con i parametri necessari per la connessione al DBMS e per la selezione del database; per far questo sarà possibile definire una classe, come quella descritta nell'esempio seguente, che potrà essere salvata in un file config.php per l'inclusione:
<?php
class MySQL
{
function MySQL()
{
# hostname di MySQL
$this->host = "localhost";
# nome utente per la connessione
$this->user = "username";
# password dell'utente
$this->pass = "password";
# nome del database
$this->data = "statistiche";
# connessione al DBMS
$this->link = mysql_connect($this->host, $this->user, $this->pass);
# selezione del database
mysql_select_db($this->data);
}
}
# istanza della classe
$data = new MySQL();
?>
Fatto questo si potrà passare alla fase che concerne la creazione del cuore dell'applicazione: il file che fungerà da contatore, da visualizzatore e da gestore degli utenti.
<?php # inizializzazione della sessione @session_start(); # creazione dell'identificatore di sessione $sessione=@session_id(); # memorizzazione in variabile del momento di connessione $time=@time(); # definizione dell'intervallo di tempo valido per l'utente connesso $intervallo=$time-300; # inclusione del file di configurazione @require "config.php"; # confronto tra identificatore di sessione e dati in tabella $sql_confronto="SELECT * FROM utenti_on_line WHERE sessione='$sessione'"; $res_confronto=@mysql_query($sql_confronto) or die(mysql_error()); # se l'identificatore non è presente viene creato un nuovo record if(@mysql_num_rows($res_confronto)==0){ $sql_inserimento="INSERT INTO utenti_on_line(sessione, timestamp)VALUES('$sessione', '$time')"; $res_inserimento=@mysql_query($sql_inserimento) or die(mysql_error()); } else { # se l'identificatore è già presente viene aggiornato il # valore relativo al momento di connessione $sql_aggiornamento="UPDATE utenti_on_line SET timestamp='$time' WHERE sessione = '$sessione'"; $res_aggiornamento=@mysql_query($sql_aggiornamento) or die(mysql_error()); } # estrazione dei record presenti in tabella per il conteggio $sql_conteggio="SELECT id FROM utenti_on_line"; $res_conteggio=@mysql_query($sql_conteggio) or die(mysql_error()); $conteggio=@mysql_num_rows($res_conteggio); # stampa a video del conteggio echo "Utenti online: " . $conteggio; # cancellazione dei record obsoleti $sql_cancellazione="DELETE FROM utenti_on_line WHERE timestamp<$intervallo"; $res_cancellazione=@mysql_query($sql_cancellazione) or die(mysql_error()); # chiusura della connessione @mysql_close(); ?>
In pratica l'applicazione registra un identificatore per ogni sessione inizializzata dall'accesso di un utente, se questo identificatore non è presente nella tabella viene aggiunto, se esso è invece già presente viene aggiornato il dato relativo al momento del suo accesso; nel caso in cui il momento di accesso di un utente sia inferiore al timestamp ottenuto sottraendo 5 minuti (300 secondi) dal risultato della funzione time(), il record corrispondente verrà eliminato considerando l'utente non più online.
Guida Yii FrameworkCome creare applicazioni Web in modo semplice e veloce con il... |
Guida Zend FrameworkDiventate professionisti dello sviluppo Web. Zend Framework è lo... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso PHP per Webmaster11 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |