Visualizzare lo stato OnLine o OffLine di un utente

Ciao, mi sono fatto un sito che spero diventi una community in futuro. La cosa che non riesco a capire e come fare a visualizzare lo stato di un utente quando è collegato o scollegato proprio come avviene nei forum come questo. Che codice usare?

inviato 7 anni fa
MGbyte78
X 0 X

Ciao,

quando un utente si logga potresti mettere un suo riferimento (id o username) in una tabella dei "loggati" e fare riferimento a quest'ultima per sapere chi è online. Quando poi l'user fa il loguot cancelli il suo riferimento da questa tabella.

Esisteranno anche altri modi ma penso che così non sia male.

Ciao

risposto 7 anni fa
Gioge
X 0 X

Quindi dovrei creare un 'altra tabella appositamente . Ho in mente però solo parte del codice da fare, e cioè fino al login dell' utente e dell' inserimento di un campo come ad esempio "username" da usare come riferimento.

Non riesco a capire che codice usare per far sì che dopo il logout si cancelli il record. Se mi clicca su Logout, tramite questo evento potrei anche creare una query per cancellare il record, ma se mi chiude la finestra del browser?

risposto 7 anni fa
MGbyte78
X 0 X

Se ad esempio Bruno si logga inserisci l'id di Bruno nella tabella utenti_online con il timestamp di quel momento. Poi ad ogni "movimento" di Bruno aggiorni il timestamp.

Se/quando il buon Bruno esegue il logout cancelli brutalmente il record relativo al suo id dalla tabella utenti_online.

Nel caso non eseguisse il logout ma chiudesse il browser e basta, potresti rimediare controllando ogni tot nella tabella utenti_online i timestamp dei vari utenti e cancellare quelli in cui la differenza tra il loro timestamp e quello attuale supera un tot di minuti. In pratica se Bruno per 10 minuti non fa richieste posso presumere che abbia chiuso il browser e quando torna gli faccio un .... così!

Ciao

risposto 7 anni fa
Gioge
X 0 X

Ok, proverò a realizzare il tutto e vediamo se trovo difficoltà, grazie.

risposto 7 anni fa
MGbyte78
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda