• User Attivo

    .... e se resto loggato per più di 30min. sulla stessa pagina ? Il sistema lo scollega ma ingiustamente !! :mmm:


  • ModSenior

    Beh è normale... mica puoi sapere che cosa fa l'utente... puoi sapere lo stato solo dalle richieste che fa al tuo server...

    PS chi rimane 1 ora sulla stessa pagina? 😄


  • User Attivo

    Per evitare questo problema, utilizza JS per fare richieste asincrone ad una pagina che ha il compito di eseguire il refresh dello stato.


  • User Attivo

    @Sups said:

    Per evitare questo problema, utilizza JS per fare richieste asincrone ad una pagina che ha il compito di eseguire il refresh dello stato.

    ehm approfindiamo l'argomento :sbav: spiegati meglio JS lo conosco ma cosa intendi per richiesta asincrona ? Parli di Ajax ... ? O puro JS ?:)

    thanks


  • User Attivo

    Se devi fare richieste asicrone con JS si deve usare AJAX, in particolare l'oggetto XmlHttpRequest. 😄


  • User Attivo

    @Sups said:

    Se devi fare richieste asicrone con JS si deve usare AJAX, in particolare l'oggetto XmlHttpRequest. 😄

    si si ok io per fortuna ho un pò di Jquery nelle pagine quindi usare Ajax è una bazzecola, ma fammi capire come conciliare il tutto per lo scopo ... di capire se un utente loggato è ancora online o meno ....

    thanks 😉


  • User Attivo

    Nel DB inserisci la data e ora del login o dell'ultimo accesso effettuato ad una pagina del sito e ad ogni pagina web inserisci una funzione ajax che ogni tot minuti, esempio 10, aggiorna lo stato dell'utente.
    Quando vuoi sapere lo stato di un utente, esegui una query sull'ora dell'ultimo accesso, verifichi la differenza di tempo ed elabori una risposta.

    Es:
    Ora Corrente: 11.00
    Ora Accesso: 11.05 // Stato: Connesso
    Ora Accesso: 11.20 // Stato: Idle
    Ora Accesso: 11.30 // Stato: Disonnesso


  • User Attivo

    Es:
    Ora Corrente: 11.00
    Ora Accesso: 11.05 // Stato: Connesso
    Ora Accesso: 11.20 // Stato: Idle
    Ora Accesso: 11.30 // Stato: Disonnesso

    mmm....:? scusami Sups se alle 11:00 faccio il login ... alle 11.05;11.20;11.30 cosa accade ? Si tratta di 3 accessi ? Se sì perchè alle 11.30 è disconnesso ?:(

    scusa ma non sono abituato a queste procedure temporali ... :rollo:


  • User Attivo

    Ho sbagliato con gli orari, le ore di accesso dovevano essere 10.05 ecc...
    Comunque, adesso ti faccio un esempio in pseudo-codice.

    1. L'utente "mario" fa il login e visita una pagina del sito alle 10.00

    UPDATE utenti SET ultima_visita='10.00' WHERE nome='mario'

    1. L'utente "mario" abbandona il sito senza fare logout alle 10.05

    2. Verifico se "mario" è ancora in linea alle 11.00

    ora_attuale = get(ora);
    ultima_visita = get("SELECT ora_attuale FROM utenti WHERE nome='mario'");

    differenza = ora_attuale - ultima_visita;

    if(differenza = "5 minuti") return("Connesso");
    if(differenza = "20 minuti") return("Idle");
    if(differenza = "30 minuti") return("Disconnesso");


  • User Attivo

    @Sups said:

    Ho sbagliato con gli orari, le ore di accesso dovevano essere 10.05 ecc...
    Comunque, adesso ti faccio un esempio in pseudo-codice.

    1. L'utente "mario" fa il login e visita una pagina del sito alle 10.00

    UPDATE utenti SET ultima_visita='10.00' WHERE nome='mario'

    1. L'utente "mario" abbandona il sito senza fare logout alle 10.05

    2. Verifico se "mario" è ancora in linea alle 11.00

    ora_attuale = get(ora);
    ultima_visita = get("SELECT ora_attuale FROM utenti WHERE nome='mario'");

    differenza = ora_attuale - ultima_visita;

    if(differenza = "5 minuti") return("Connesso");
    if(differenza = "20 minuti") return("Idle");
    if(differenza = "30 minuti") return("Disconnesso");

    scusate ma questa cosa potrebbe essere fatta anche per la mia chat? sups, mi puoi aiutare, avevo aperto pure un topic a riguardo... sappiatemi dire, grazie.