Newsgroup: it.comp.www.php
Titolo: Stato online utenti

Ciao a tutti avrei necessitï¿œ di creare uno status degli utenti
loggati sul sito, ho pensato di memorizzare all'interno del db un
flag che mi permetta di vedere chi ï¿œ loggato. Il problema si pone
perchï¿œ non tutti per sloggarsi utilizzano il pulsante, spesso
chiudono il browser, ma in questo modo mi rimangono sullo stato
online. Come posso fare per creare un sistema che mi riconosca
quando un utente non ï¿œ piï¿œ in linea?
grazie mille per ogni eventuale aiuto o suggerimento
-- 
Postato da Virgilio Newsgroup: lo usi da web ma con le funzioni del newsreader 
http://newsgroup.virgilio.it
Gerarchie it, italia, it-alt, tin, it.binari. Unico!

 Gerarchie it, italia, it-alt, tin, it.binari. Unico!
cerca nei thread di questo newsgroup, ne troverai a dozzine
che parlano di monitoraggio utenti online/loggati.

 grazie mille per ogni eventuale aiuto o suggerimento
lascia stare mysql, usa memcache

majale ha scritto:

cos'ï¿œ? non ho trovato molto in italiano... anzi direi niente...
ï¿œ un db?
-- 
Postato da Virgilio Newsgroup: lo usi da web ma con le funzioni del newsreader 
http://newsgroup.virgilio.it


 è un db?
è un sistema per salvare variabili in RAM disponibili al webserver 
attraverso php.
è la manna fatta bit.
per dire puoi salvare $pippo = "pippo" da utente x
e leggere da utente y $pippo

 Gerarchie it, italia, it-alt, tin, it.binari. Unico!
Guarda, in parole povere, con MySQL io farei una cosa del genere...
Per ogni utente tieni un campo in database "ultima_azione" che
aggiorni col timestamp ogni pagina caricata (magari ti fai una
funzione e la richiami in ogni pagina).
Poi per controllare se l'utente è online fai il controllo se l'ultima
azione è avvenuta più di X secondi fa (generalmente i forum usano 5
minuti, se è un sito più veloce puoi usare anche 1 o due minuti). Se è
passato più tempo allora l'utente è offline, altrimenti è online. Ti
consiglio di crearti una funzione anche per questo e richiamarla di
volta in volta.
Ciao.

 grazie mille per ogni eventuale aiuto o suggerimento
Ultra sinteticamente:
Scrivi in Mysql una riga per sessione e la sua scadenza (adesso + 5 
minuti ad esempio)
Ad ogni pagina di quella sessione per quell'utente aggiorni la scadenza 
della sessione (adesso + 5 minuti ad esempio)
per ogni pagina(o altro evento, servizio, ecc...), cancelli le sessioni 
< di adesso.
la lista della tabella con questi dati rappresenta gli utenti online
ciao
m.

 m.
Questo però non comporta la disconnessione dal sito?
Credo lui intendesse un semplice controllo di chi è online in quel
momento, non un sistema che disconnette gli utenti inattivi.

 momento, non un sistema che disconnette gli utenti inattivi.
Ti basta non far scadere la sessione. Tuttavia, se la sessione scade, 
puoi fare quello che ti pare ma l'utente si disconnette (salvo impostare 
un cookie e autenticare con quello, tipo auto-login o sessioni di durata 
mensile).
Enrico

 grazie mille per ogni eventuale aiuto o suggerimento
http://php.html.it/articoli/leggi/3084/contare-gli-utenti-online-con-php/

 
http://php.html.it/articoli/leggi/3084/contare-gli-utenti-online-con-.
..
Scusa, mi sembra una soluzione molto interessante ma non capisco a
capirne gli effettivi benefici rispetto alla semplice 'ultima_azione'.
Potresti illuminarmi a proposito?