Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: Sessioni infinite

  1. #1
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125

    Sessioni infinite

    Non riEsco proprio a capire dove sto prendendo l'abbaglio.

    1) L'utente registrato si autentica parte la session, parte l'application e dopo 24 ore sia la session che la application risultano ancora attive...

    2) Ogni volta che si autentica un secondo utente il primo già connesso, viene sostituito dal secondo e vedo quindi sempre e soltanto un utente autenticato...

    Ho utilizzato un esempio trovato con Google che utilizza la tecnica del global.asa ma davvero non so dove sbaglio.

    Global.asa:

    codice:
    <SCRIPT language="VBScript" Runat="Server"> 
    
    Sub Application_OnStart
      Application("intActiveUserNumber") = 0 
      Application("Utente") = ""
    End Sub
    
    Sub Session_OnStart 
    Session("start") = Now
    Session.Timeout = 2 
    Application.Lock 
    Application("intActiveUserNumber") = Application("intActiveUserNumber") + 1 
    Application.UnLock 
    End Sub 
    
    Sub Session_OnEnd 
    Application.Lock 
    Application("intActiveUserNumber") = Application("intActiveUserNumber") - 1
    Application.UnLock 
    End Sub 
    
    </SCRIPT>
    Pagina di login:

    codice:
    Session("utente") = Request("user")
    if InStr(1, Application("Utente"), Session("utente") & "#^#" & objRS("id_user") &"|" ) = 0 then 
    Application.Lock 
    Application("Utente") = Application("Utente") & Session("utente") & "#^#" & objrs("id_user") & "|" 
    Application.UnLock 
    end if
    Grazie per l'eventuale aiuto.
    Mizushi

  2. #2
    a che ti serve questo: Session("start") = Now?

    cmq application("Utente") non la svuoti mai quindi risulterà sempre attiva

    che vuol dire che la session è rimasta aperta? le session scadono nell'ordine dei minuti

  3. #3
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Originariamente inviato da santino83_11_04
    a che ti serve questo: Session("start") = Now?

    cmq application("Utente") non la svuoti mai quindi risulterà sempre attiva

    che vuol dire che la session è rimasta aperta? le session scadono nell'ordine dei minuti
    Santino grazie per la risposta.

    1) La Session("start") = Now è prevista nel global.asa che non ho modificato rispetto all'originale.

    2) Come e dove devo svuotare la application("Utente") ?

    3) La session sarà pure scaduta ma continuo a vedere con questo script tra gli utenti autenticati quelli di ieri.

  4. #4
    1) secondo me la puoi togliere

    2) potresti provare, nel session_onend del global asa, a mettere questo...però non avendolo mai fatto non so se funziona, prova a cercare altri esempi nel web:

    codice:
    Sub Session_OnEnd 
    Application.Lock 
    Application("intActiveUserNumber") = Application("intActiveUserNumber") - 1
    temp=Application("Utente")
    Application("Utente")=replace(temp,"|" & Session("utente") & "#^#" & Session("id_user") & "|","")
    Application.UnLock 
    End Sub
    dove Session("id_user")=objrs("id_user") e la valorizzi al momento del login... però se cerchi sul web dovresti trovare altri esempi piu performanti, magari cerca anche nel forum se ne parla spesso dei global.asa e degli utenti connessi

    3) l'application, al contrario della session, scade solo se viene riavviato il server, altrimenti rimane sempre piena (se non dico una boiata)

  5. #5
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Nuovo global.asa:

    codice:
    <SCRIPT language="VBScript" Runat="Server"> 
    
    Sub Application_OnStart
      Application("intActiveUserNumber") = 0
      Application.unlock
    End Sub
    
    Sub Application_OnEnd 
    End Sub
    
    Sub Session_OnStart 
    Session.Timeout = 2 
    Application.Lock 
    Application("intActiveUserNumber") = cint(Application("intActiveUserNumber") + 1 )
    Application.UnLock 
    End Sub 
    
    Sub Session_OnEnd 
    Application.Lock 
    Application("intActiveUserNumber") = cint(Application("intActiveUserNumber") - 1)
    temp=Application("Utente")
    Application("Utente")=replace(temp,"|" & Session("utente") & "#^#" & Session("id_user") & "|","")
    Application.UnLock 
    End Sub 
    
    </SCRIPT>
    Adesso gli utenti si accodano regolarmente... è già qualcosa... rimane il rpoblema della chiusura delle application ... ho letto sul web che per chiudere le application e le session si usa questa sintassi:

    codice:
    Application.Contents.Remove("Utente")
    Application.Contents.RemoveAll()
    
    Session.Contents.Remove("Utente")
    Session.Contents.RemoveAll()
    Come potrei organizzare il global.asa per forzare la chiusura di application e session dopo un determinato tempo?

  6. #6
    le session scadono da sole

    tu vedi gli utenti connessi di ieri perchè l'application("utente") non viene privata dell'utente che si disconnette

    se tu rimuovi l'application cancelli anche tutti gli utenti connessi

  7. #7
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Originariamente inviato da santino83_11_04
    tu vedi gli utenti connessi di ieri perchè l'application("utente") non viene privata dell'utente che si disconnette
    Non ho capito come devo fare per eliminarla.

  8. #8
    adesso in una pagina svuota l'application("utente") con application("utente")="" e poi prova a vedere se quello che ho scritto io va...altrimenti non so

  9. #9
    santino ha perfettamente ragione.....

    nel session_onend devi distruggere le variabili di applicazioni.....

    o le setti a stringa vuota con application("utente") = "" oppure
    set application("utente")=nothing

    facci sapere

  10. #10
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Lanciando la pagina asp con la sintassi:

    codice:
    application("utente")=""
    vengono eliminati tutti gli utenti connessi.

    1) Devo farlo sempre io manualmente ?

    2) Può farlo l'utente cancellando solo la sua application ?

    :master:

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.