• User Attivo

    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!


  • User Attivo

    Puoi usare i timers Javascript ce ogni tot, tramite AJAX, notificano la presenza dell'utente.


  • User Attivo

    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-line

    Meglio ancora messenger.
    Comunque... grazie a tutti ci vediamo stasera!

    Au revoir
    by Max :fumato:


  • User Attivo

    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!


  • User Attivo

    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