- Home
- Categorie
- Coding e Sistemistica
- PHP
- Verificare lo stato di un utente: on-line / off-line
-
Verificare lo stato di un utente: on-line / off-line
Ciao ragazzi,
eccoci ad una nuova impresa... costruire una specie di messenger...
Ma per il momento quello che mi interessa, come da titolo, se un utente è collegato oppure no. Altro esempio evidente è quello del forum.
Non appena un utente si collega il suo stato cambia in on-line (e questa parte è semplice) ma non appena l'utente chiude il browser noi dovremmo vedere off-line proprio come messenger oppure il forum.maxgiulia.altervista.org/max/08-agosto/_altervista_ht/mess-stato.jpg
All'apertura della pagina viene inviata una variabile
essa attraverso fopen fwrite e 'w+' sovrascrive un file chiamato stato.php
in cui inserisce il valore "on-line".
Questo file chiamato "stato.php" grazie ad include viene messo nella pagina principale (form-utente1.php) e dice agli altri utenti il tuo stato e cioè
che sei collegato...
Ma quando chiudi la pagina... in questo file "stato.php" si dovrebbe sovrascrivere ('w+') la parola "off-line".
Per risolvere sto problema (resettare il file stato.php) nel suo stato iniziale 'off-line' dovrei creare un pulsante chiamato 'chiudi' il quale invia la variabile col suo valore "off-line" sempre allo stesso file "stato.php" di modo che gli altri utenti sappiano che l'utente 1 non è più collegato.Tutto qui!
-
Puoi usare i timers Javascript ce ogni tot, tramite AJAX, notificano la presenza dell'utente.
-
Il timer in javascript ce l'ho ma non conosco AJAX
Comunque erano solo delle prove... forse ci volevano le sessioni.
Pensavo che qualcuno l'avesse già fatto un lavoro di questo tipo.Nei forum si vede subito quando un utente è on-line e dopo un certo tempo
off-line... se l'utente aggiorna la pagina o invia un messaggio il suo stato diventa on-lineMeglio ancora messenger.
Comunque... grazie a tutti ci vediamo stasera!Au revoir
by Max
-
Puoi semplicemente mettere un controllo ad ogni refresh della pagina.
Ad ogni nuova visita, inserisci il visitatore (o utente) in una tabella mysql segnandoti l'ip, e l'ora di ingresso.
Se dopo N secondi l'utente non aggiorna più il suo orario nella tabella (automaticamente ovviamente) lo cancelli.
Così hai gente online se presente, offline se non è più sul sito!
-
Ho trovato già alcuni esempi... tipo questo..
allwebfree.it/articolo_php_controllo_sito.php...e poi quest'altro:
$timeout = 5 // minuti di timeout -> Se un utente non aggiorna nessuna pagina per questo periodo, viene segnato offline. $sql = mysql_query("SELECT * FROM {tabella}"); while( $row = mysql_fetch_array($sql) ){ if($row['time']>(time()-($timeout*60) )){ // UTENTE ONLINE } else { // UTENTE OFFLINE } }
però a me piacerebbe usare il file txt per depositare la variabile o meglio un file php dove eventualmente metto un refresh