Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Comportamento anomalo della session_onEnd

    Ho finalmente capito cos'è che non va nella mia lista degli utenti connessi!

    Ma comunque il problema risiede nel comportamento anomalo della Session_onEnd. Mi spiego: quando un utente loggato, il cui nome è stato aggiunto alla variabile Application("users"), chiude il browser e la sessione scade (dopo 20 min) il suo nome, memorizzato anche in una variabile di sessione session("username"), non viene cancellato dalla routine session_onEnd presente nel global.asa

    Riporto di seguito il codice esatto:
    codice:
    Sub Session_OnEnd 
    
       Application.Lock
       Application("Users") = Replace( Application("Users") , Session("username")&"|" ,"")
       Application.UnLock
       Application.Lock 
       Application("NumUtentiConnessi") = Application("NumUtentiConnessi") - 1
       Application.UnLock
       
    End Sub
    Viene invece cancellato il "|"... cosa che per altro mi sembra assurda.

    Che ne pensate???
    Giulio Ferri
    giulioferri.it

    Anche un orologio fermo ha ragione due volte al giorno (Giorgio Faletti)

  2. #2
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Quando l'utente chiude il browser, non scade la sessione, per cui la session_onend non viene chiamata.

    Session_onEnd viene richiamata solo se la sessione scade automaticamente o se viene chiusa da script.
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  3. #3
    Originariamente inviato da kalosjo
    Quando l'utente chiude il browser, non scade la sessione, per cui la session_onend non viene chiamata.

    Session_onEnd viene richiamata solo se la sessione scade automaticamente o se viene chiusa da script.
    Allora c'è qualcosa (di molto importante) che non avevo capito...

    Quindi, se un utente chiude il browser la sessione NON scade dopo 20 minuti???

    Credevo che le sessioni scadessero dopo 20 minuti di inattività a prescindere dalla causa dell'inattività (chiusura browser o "immobilismo"). Ma sei strasicuro???

    Grazie
    Giulio Ferri
    giulioferri.it

    Anche un orologio fermo ha ragione due volte al giorno (Giorgio Faletti)

  4. #4
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Purtroppo si.....
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  5. #5

    ma allora come si fa?

    Scusa se rompo

    ma allora visualizzare correttamente il nick degli utenti connessi non è possibile?!? Nel senso che spesso capita che un utente abbandona il sito CHIUDENDO IL BROWSER... se però in questo modo la session_onEnd non parte mai quel nick non verrà mai eliminato dalla Application("users").

    Quindi 2 domande:

    1) C'è un modo per lanciare la session.abandon quando un utente chiude il browser?

    2) Come cavolo fanno quelli che visualizzano la lista degli utenti loggati?

    Grazie ancora
    Giulio Ferri
    giulioferri.it

    Anche un orologio fermo ha ragione due volte al giorno (Giorgio Faletti)

  6. #6
    ad ogni pagina caricata da un utente mette l'ora da qualche parte
    e controlla che per gli altri non siano trascorsi xx minuti senza reload

  7. #7
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    661

    Re: ma allora come si fa?

    Originariamente inviato da giulioferri
    Scusa se rompo

    ma allora visualizzare correttamente il nick degli utenti connessi non è possibile?!? Nel senso che spesso capita che un utente abbandona il sito CHIUDENDO IL BROWSER... se però in questo modo la session_onEnd non parte mai quel nick non verrà mai eliminato dalla Application("users").

    Quindi 2 domande:

    1) C'è un modo per lanciare la session.abandon quando un utente chiude il browser?

    2) Come cavolo fanno quelli che visualizzano la lista degli utenti loggati?

    Grazie ancora

    il trucchetto è molto semplice .... crei un evento on_unload lato client ( mi sembra fosse cosi') e fai chiamare una pagine che gestisce la fine della sessione, in questo modo se l'utente cambia pagina o chiude il browser passa per quella pagina.

    NB i tuoi link dovrai farli aprire in una nuova finestra o in un frame che non sia quello dove c'è l'evento, se no ogni volta che si muove dalla pagina gli annulli la session.

  8. #8
    Originariamente inviato da cicciopie
    ad ogni pagina caricata da un utente mette l'ora da qualche parte
    e controlla che per gli altri non siano trascorsi xx minuti senza reload
    Intuisco quello che dici ma non ho ben capito...

    Potresti fare un piccolo esempio??? Grazie 1000
    Giulio Ferri
    giulioferri.it

    Anche un orologio fermo ha ragione due volte al giorno (Giorgio Faletti)

  9. #9
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    661

    Re: Re: ma allora come si fa?

    Originariamente inviato da gold
    il trucchetto è molto semplice .... crei un evento on_unload lato client ( mi sembra fosse cosi') e fai chiamare una pagine che gestisce la fine della sessione, in questo modo se l'utente cambia pagina o chiude il browser passa per quella pagina.

    NB i tuoi link dovrai farli aprire in una nuova finestra o in un frame che non sia quello dove c'è l'evento, se no ogni volta che si muove dalla pagina gli annulli la session.


    l'evento si chiama "onunload"

  10. #10
    si però il mio sito non ha frame quindi sono più propenso ad approfondire il metodo proposto da cicciopie.

    Grazie
    Giulio Ferri
    giulioferri.it

    Anche un orologio fermo ha ragione due volte al giorno (Giorgio Faletti)

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 © 2026 vBulletin Solutions, Inc. All rights reserved.