durante la fase di login segna qualche valore nel database (tipo l'ora di connessione e/o di ultima azione tra le pagine) poi si controlla se quel valore è inferiore all'ora attuale di tipo 15 minuti allora ti segna online
tutto tramite database comunque![]()
Sei sicuro che il metodo sia questo?
A me sembra poco realistico... anzi, una presa in giro...![]()
Forse funzionerebbe meglio con un intervallo minore...
Viene memorizzata la data (data+ora) dell'ultima azione eseguita e confrontata con la data (data+ora) attuale.
Se l'intervallo di inattività è più grande di TOT tempo l'utente viene segnalato come offline.
Administrator of NAMDesign.Net
Mi riattacco a questo post, tra quelli che ho letto senza venirne a capo.
Come si fa a cambiare un record (data-ora) ad ogni azione dell'utente? Forse ogni pagina dovrebbe avere in cima una query che modifica il record!... ma non è un po' macchinoso?
Tempo fa avevo letto un post su questo forum dove qualcuno indicava come si può scrivere su file l'elenco degli utenti loggati, cancellandoli dall'elenco anche quando chiudono la finestra del browser, cosa che non sembra possibile fare con un record del database. Non lo trovo più![]()
Comunque io uso le sessioni per il login e vorrei avere un elenco dei loggati, non so quale sia il modo più razionale di procedere. Consigli?
Tutti i principali forum utilizzano un database.
Nella tabella del database relativa agli utenti, in genere, c'è anche un campo "ultima attività" che viene aggiornato ogni volta che un utente fa una richiesta.
Tramite quel campo si contano il numero di utenti la cui "ultima attività" risale a non più di X minuti fa.
Administrator of NAMDesign.Net
Questo se da un lato è un procedimento abbastanza semplice, nel mio caso comporta almeno due problemi.
Il primo è appunto che dovrei aggiungere una query in testa a tutte le pagine del forum, ma forse si può anche scrivere su una pagina a parte che viene inclusa in testa alle pagine, abbreviando l'eventuale lavoro di modifica alla query per esempio se si vuole variare il tempo di scadenza.
Il secondo è più difficile da risolvere, perchè utilizzando le sessioni per il login non riesco a controllare esattamente il tempo di scadenza delle stesse, di conseguenza posso ritrovarmi nell'elenco dei loggati utenti disconnessi o viceversa, a seconda di quanto gli dura la sessione.
Il motivo per cui non riesco a determinare il tempo di durata della sessione è qui:
http://forum.html.it/forum/showthrea...readid=1260163
Comunque in teoria settando ini_set ('session.gc_maxlifetime', '3600'); il tempo di inattività da verificare dovrebbe essere 3600 secondi. Io ci provo...
guarda questi meccanismi non sono nati con l'intento di determinare realmente con precisione in questo istante quante persone sono online ma bensi vogliono approssimare questo valore.
Quando nei forum è scritto che ci sono 100 persone online non necessariamente sono realmente 100, ne possono essere anche 70 o nel caso ipotetico anche 0 se in realtà nessuno è vicino al pc ed il tempo limite non è stato ancora raggiunto.
L'importante è non focalizzarsi troppo sui dettagli di questo problema perchè la cifra è per sua natura indicativa.
Se poi magari la X di prima è uguale alla durata della sessione è meglio perchè puoi avere stime più realistiche. Ovvio che se la sessione dura 1 minuto e tu hai messo X = 1 giorno....il risultato è totalmente sballato.
Administrator of NAMDesign.Net
Eh eh, sarà quello che succederà visto che non riesco ancora a capire come mai
ini_set ('session.gc_maxlifetime', '3600');
sembra non avere alcuna influenza sulla durata della sessione.
Ma anche se il risultato è approssimativo va bene lo stesso, come dici.
Ciao.
Se sei in hosting non hai nessuna possibilità di influire sulla durata della sessione, a meno che tu non utilizzi una directory separata, soltanto tua, per le tue sessioni (ma bisogna vedere se è possibile), oppure non utilizzi un sistema di memorizzazione alternativo, ad esempio su database.
Attento al 3d che hai postato, ci sono delle inesattezze, come ti eri già accorto di persona