Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    277

    Sessione utente univoca

    Ciao a tutti.

    Sulla mia applicazione vorrei creare una sessione utente univoca.

    Il concetto è questo:

    - L'utente A si connette. parte una sessione il cui ID viene registrato in una tabella mysql, assieme al fatto che utente A è loggato (setto il flag LOGGATO)

    - Da un altro pc l'utente A prova a connettersi di nuovo: non può farlo perché è già connesso (flag LOGGATO è settato).

    Se però l'utente A CHIUDE la finestra, rimane loggato per il sistema. Dovrei prevedere una sorta di script che gira e verifica 'qualcosa' (ad esempiuo periodi di inattività, etc.).

    Come è realizzabile una cosa del genere?

    Grazie a tutti,

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    277
    Nessuna idea?

  3. #3
    Registri nella tabella il timestamp al login e lo aggiorni per ogni operazione. Decidi un tempo di inattività e verifichi se é trascorso.
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    277
    Ogni operazione...cioè?

    Se ad esempio un utente tine una maschera aperta e non fa niente... per te è inattività?

    Quello che pensavo è che il client dovrebbe pingare il server ogni tot secondi... si può fare una cosa del genere?

  5. #5
    con ajax, non con php di certo
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    277
    SI ho capito.

    Allora: quindi io devo fare in modo di mndare ogni 90 secondi una richiesta al server.

    La richiesta è:

    - UTENTE_CONNESSO
    - ID_SESSIONE

    Il server risponde:

    - OK

    e internamente setta connesso = 1.

    Come fare a mandare questa richiesta periodicamente?

    Ho letto qualcosa come http://ajaxpatterns.org/Periodic_Refresh, ma non so se è quello che fa per me...

  7. #7
    secondo me ti conviene impostare la sessione con una durata bassa, per esempio 20 minuti, poi ad ogni operzione che l'utente fa, riaggiorni la scadenza della sessione sempre a venti minuti...mi spiego meglio

    l'utente è loggato....dopo dieci minuti di inattività (ne rimarrebbero altri 10 prima della scadenza della sessione) fa un'operazione (e nel file php che svolge l'operazione ci metti la funzione che ti reimposta la scadenza della sessione a 20 minuti)..quindi dopo l'operazione avrà ankora 20 minuti di tempo prima che la sessione scada e quindi dovrà rieffettuare il login...

  8. #8
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,650
    di norma si fa il contrario, l'utente prova a loggarsi e slogga quello già loggato, e il problema non si porrebbe

    il ping usalo solo se si parla di un amministrativo com pochissima utenza, sarebbe troppo pesante per il webserver altrimenti.

    considera inoltre che il ping considera solo se la finestra è aperta o se l'utente ha cambiato sito, ma se la persona connessa dovesse assentarsi lasciando la pagina aperta?

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    277
    dopo dieci minuti di inattività (ne rimarrebbero altri 10 prima della scadenza della sessione) fa un'operazione (e nel file php che svolge l'operazione ci metti la funzione che ti reimposta la scadenza della sessione a 20 minuti)..quindi dopo l'operazione avrà ankora 20 minuti di tempo prima che la sessione scada e quindi dovrà rieffettuare il login
    Così non va perché se l'utente chiue la finestra rimane appeso!

    l'utente prova a loggarsi e slogga quello già loggato, e il problema non si porrebbe
    Così però non ho univocità della sessione. Ovvero se io provo a loggarmi la queru dice: sei già connesso, ciccia. Dev funzionare così.

    considera inoltre che il ping considera solo se la finestra è aperta o se l'utente ha cambiato sito, ma se la persona connessa dovesse assentarsi lasciando la pagina aperta?
    In questo caso risulterebbe (correttamente) sempre connesso.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.