Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Edipo
    Registrato dal
    May 2003
    Messaggi
    1,239

    Utenti connessi e scadenza Sessione_>>>

    Notte a chi è presente sul forum!
    Ho 4 righe di codice per il classico sistema di visualizzazione degli utenti connessi inserite nel file Global.asa.
    Di seguito:

    codice:
    <SCRIPT language="VBScript" Runat="Server">
    
    Sub Application_OnStart
      Application("Users") = ""
    End Sub
    
    Sub Session_OnEnd
    
      Application.Lock
      UtenteGlobale = Session("utente")
    
    	  UtenteGlobale = UtenteGlobale & "|"
    	  Application("Users") = Replace( Application("Users") , UtenteGlobale ,"")
    	  'quando scade una sessione viene eliminato il nome dell'utente dalla variabile di
    	  'applicazione che contiene l'elenco degli utenti attivi
    	  Application.UnLock
    
    
    End Sub
    
    </SCRIPT>
    Il punto è che so che c'è un problema in questo script ma non ne conosco la causa.
    Lo script compone una variabile con tutti gli uenti connessi divisi da un |.

    Accade (non sempre e non so perchè) che se son connessi 2 utenti (esempio) viene eliminato il simbolo | che determina la distinzione tra gli utenti, risultato:

    Utente1Utente2| Anzichè Utente1|Utente2|

    Ho pensato che in qualke modo scadendo la sessione di un utente, si libera questa variabile che contiene il nome dell'utente, entra in gioco Session_onEnd che elimina il nomeUtente (vuoto) con |, con conseguenza che il nomeUtente resta nella variabile di Applicazione ma senza la sua | che si congiunge all'altro nomeUtente.

    Non so se è chiaro...
    Come posso risolvere il problema?
    "Il tempo aiuta a dimenticare e il destino regala sempre una seconda occasione.
    Ma aprirsi all'amore significa rendersi vulnerabili".

    Nicholas Sparks

  2. #2
    Utente di HTML.it L'avatar di albis
    Registrato dal
    May 2002
    Messaggi
    912
    prova a scrivere così

    <SCRIPT language="VBScript" Runat="Server">

    Sub Application_OnStart
    Application("Users") = ""
    End Sub

    Sub Session_OnEnd
    if Session("utente") <> "" then
    Application.Lock
    UtenteGlobale = Session("utente")

    UtenteGlobale = UtenteGlobale & "|"
    Application("Users") = Replace( Application("Users") , UtenteGlobale ,"")
    'quando scade una sessione viene eliminato il nome dell'utente dalla variabile di
    'applicazione che contiene l'elenco degli utenti attivi
    Application.UnLock

    end if
    End Sub

    </SCRIPT>
    Forza la magica ROMA

  3. #3
    Utente di HTML.it L'avatar di Edipo
    Registrato dal
    May 2003
    Messaggi
    1,239
    Ciao Albis.
    Infatti adesso ho adottato questa soluzione, cioè il controllo sulla variabile di Sessione.

    Ma non resta il nome dell'utente permanentemente nella variabile di Applicazione?
    Quindi se si svuota sta Session e l'Application non si riavvia mai, l'utente risulterà sempre loggato...o sbaglio?? :master:
    Grazie cmq per la risposta!!
    "Il tempo aiuta a dimenticare e il destino regala sempre una seconda occasione.
    Ma aprirsi all'amore significa rendersi vulnerabili".

    Nicholas Sparks

  4. #4
    Utente di HTML.it L'avatar di albis
    Registrato dal
    May 2002
    Messaggi
    912
    che t'ho da dì ?
    prova
    comunque se al momento dell session onend non è valorizzata la variabile non c'è modo di eliminarlo

    potresti fare una altra prova
    metti tutto il sito in una pagina che contiene un frame
    nel frame girerà il sito e nella pagina che contiene il frame (che quindi rimarrà sempre fissa) metti uno script dove sull'onunload
    fai un windows.open di una pagina (in posizione nascosta -200,-200 )
    dove scrivi
    <%
    if Session("utente") <> "" then
    Application.Lock
    UtenteGlobale = Session("utente")

    UtenteGlobale = UtenteGlobale & "|"
    Application("Users") = Replace( Application("Users") , UtenteGlobale ,"")
    'quando scade una sessione viene eliminato il nome dell'utente dalla variabile di
    'applicazione che contiene l'elenco degli utenti attivi
    Application.UnLock

    end if
    %>

    e poi chiudi la stessa pagina


    e sull'onload
    apri una altra pagina che vede se la variabile di sessione è valorizzata , se sì controlla se è contenuta nella var di applicazione
    se non è contenuta allora la aggiunge

    in questo modo il logout dovrebbe avvenire appena la pagina viene chiusa o si và in un altro sito

    allo stesso tempo però se l'utente clicca sù F5 (quindi avviene prima l'onunload e poi il l'onload) l'utente viene tolto e poi rimesso
    Forza la magica ROMA

  5. #5
    Utente di HTML.it L'avatar di Edipo
    Registrato dal
    May 2003
    Messaggi
    1,239
    Si ho capito, vedrò cosa posso fare...ti ringrazio per gli aiuti dati!!
    A presto albis.
    "Il tempo aiuta a dimenticare e il destino regala sempre una seconda occasione.
    Ma aprirsi all'amore significa rendersi vulnerabili".

    Nicholas Sparks

  6. #6
    Utente di HTML.it L'avatar di albis
    Registrato dal
    May 2002
    Messaggi
    912
    quello script dove lo hai preso ?
    comunque lo avevo scritto io per aspitalia
    Forza la magica ROMA

  7. #7
    Utente di HTML.it L'avatar di Edipo
    Registrato dal
    May 2003
    Messaggi
    1,239
    Originariamente inviato da albis
    quello script dove lo hai preso ?
    comunque lo avevo scritto io per aspitalia
    :quote: :quote: :quote: :quote: :quote:
    Si infatti l'ho preso da aspitalia se non sbaglio...e dai commenti sottostanti risulta che il mio problema lo hanno anche altri e che non si è riusciti risolverlo.
    :master:
    Io cmq continuo a non capirne la causa. :master:
    "Il tempo aiuta a dimenticare e il destino regala sempre una seconda occasione.
    Ma aprirsi all'amore significa rendersi vulnerabili".

    Nicholas Sparks

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.