Newsgroup: it.comp.www.php
Titolo: Re: Sessioni e logout ...

 l'utente e' ancora loggato?
Le sessioni non si "accorgono" se un utente è ancora loggato, almeno che 
l'utente non esegue uno script di logout che distrugge la sessione 
creata dallo stesso.
Crea una script php e lo fai eseguire con cron job. Lo script dovrebbe
analizzare l'ultima data di modifica del file di sessione.
Imposti un valore di default tipo 10 minuti,
se il file di sessione, non è stato modificato da almeno 10 minuti
lo cancelli.
Saluti
Corrado Modica
www.pachinoglobale.com

Faccio seguito ad un intervento precedente per chiedere ancora una mano...
Dovrei gestire il logout di utenti nel caso non si disconnettano tramite 
esplicito "logout".
Ho capito che devo usare le sessioni ... le ho studiate un po' e adesso 
riesco ad usarle correttamente ma.. come utilizzarle per accorgersi se 
l'utente e' ancora loggato?
Io memorizzo in un file di testo il nome utente e l'ora in cui l'utente ha 
iniziato la sessione, imposto una variabile per un timelimit di inattivita' 
.. ma come metto insieme il tutto?
Sto impazzendo, vedo che c'e' una gran confusione in giro nei newsgroup, 
qualcuno puo' "passarmi" poche ma risolutive linee di codice?
Pizza pagata... 

 Corrado Modica
So che il CRON permette di eseguire script esterni ciclici o di controllo 
sul server, ma.. come posso aver accesso a questo? nel senso di dirgli COSA 
deve controllare e QUANDO?
Ho trovato un rete uno script in php che SIMULA un CRON, potrebbe andar 
bene?
Inoltre.. come viene modificato il file di sessione da andare a controllare? 
e quale variabile devo andare a testare per vedere se e' cambiato?
Io avevo immaginato una soluzione con la quale ogni utente che entra, 
praticamente controlla gli altri, nel senso che va ad analizzare il file 
utenti (nel quale ho memorizzato nick,ip e orario d'ingresso di ogni utente) 
e ogni n minuti (tramite uno script php in un frame nascosto o in un popup 
invisibile) va ad aggiornare il PROPRIO orario di attvita' e quello degli 
altri, eventualmente rimuovendo quelli che hanno una differenza maggiore di 
quella scelta per stabilirne l'inattivita' presunta, ma credo che questo 
sistema, oltre che macchinoso e oneroso per il server, possa creare casini 
al file di log, nel caso di piu' accessi contemporanei, oltre al fatto che 
non tutti i browser supportano i frames e non tutti gli utenti hanno i popup 
attivi.
Scusate se sto dicendo bestialita', ma sono veramente neofita per il php.. 
magari c'e' un sistema piu' veloce e piu' efficiente.
Tra l'altro sino a poco fa usavo una chat completamente in php che non aveva 
il problema della disconnessione e funzionava benissimo (se vuoi ti passo il 
codice).
Saluti
 

lo cancelli.
IMHO non è necessario scomodare i cron job, basta che ad ogni accesso
di un utente esegui il codice che aggiorna lo stato di tutti gli
utenti (basta una query al database se usi il db).
Francesco Mazzi
Webmaster di AltroPC.it - 
http://www.altropc.it
 
Dev.Staff di E-Xoopport - 
http://dev.e-xoopport.it

codice).
Credo che usino javascript, quando si chiude la finestra del browser
si apre una piccola finestrina che si occupa di aggiornare lo stato
dell'utente online.



C'e' qualcosa che ancora non afferro...
Poniamo che entri l'utente x .... dovrebbe aggiornare lo stato degli altri 
utenti, ma come fa a sapere se sono o meno online, per eventualmente 
rimuoverli dal database? Credo non ci sia modo di sapere se l'utente y e' 
online o meno, a meno di non fargli eseguire uno script ogni tot minuti per 
aggiornare a se stesso il suo stato nel database, sbaglio?
E in questo caso.. questo codice di aggiornamento potrei metterlo in un file 
html con autorefresh, che chiaramente "gira" solo se l'utente e' online, ma 
se il suo browser non supporta i frames o i popup.. dove lo metto questo 
codice?

codice?
No, metti questo codice in ogni pagina visitata dagli utenti, in
pratica basta che includi una funzione in tutte le pagine.
Questo meccanismo viene utilizzato per visualizzare lo stato online
nei forum e nella chat in php.
Spero di aver chiarito i dubbi, ciao.


 Spero di aver chiarito i dubbi, ciao.
Il problema e' proprio quello... il mio e' un sito un po'.. particolare, 
praticamente non ci sono cambi di pagina! I contenuti sono tutti in un 
player video in flash che manda filmati flv presi da una playlist xml e che 
si autoaggiorna alla fine, quindi dovrei trovare una soluzione diversa.
Spero di essere stato chiaro.. ciao e grazie 

Spero di essere stato chiaro.. ciao e grazie 
beh se le cose stanno così ci puoi fare poco anche con le altre
soluzioni che ti sono state proposte, perchè quando l'utente apre il
player flash non visita più nessun'altra pagina e quindi non è
possibile nè sapere se è online nè aggiornare lo stato degli utenti.
