Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    ennesimo problema utenti connessi

    ciao, ho cercato sul forum e avevo quasi risolto, ma da qualche giorno mi si è presentato un nuovo problema.
    in pratica quando le pagine sono in rete non riesco ad avere traccia degli utenti connessi, in pratica ogniuno che si collega al sito vede se stesso, ma non gli altri!

    posto gli script, in pratica sono quelli che si trovano un po' dappertutto:

    file global.asa

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

    Sub Application_OnStart
    'Session.Timeout = 1
    Application("Users") = ""
    End Sub

    Sub Session_OnEnd

    Application.Lock
    Application("Users") = Replace( Application("Users") ,"|" & Session("utente") & "|" ,"")
    '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>


    porzione presente nella pagina del login:

    Session("utente") = statuscookie("username")
    if InStr(1, Application("Users"),"|" & Session("utente") & "|" ) = 0 then
    'se l'utente non è già presente
    Application.Lock
    'viene aggiunto l'utente appena loggato alla stringa che contiene
    ' l'elenco degli utenti
    Application("Users") = Application("Users") & "|" & Session("utente") & "|"
    Application.UnLock
    end if


    porzione di script nel bottom del sito dove vengono visualizzati gli utenti connessi:

    dim arrUtenti, q
    Response.Write "Utenti Collegati:
    "
    arrUtenti = Split(Application("Users"),"|")

    for q = 0 to UBound(arrUtenti)
    Response.Write arrUtenti(q) & "
    "
    next


    può essere che ci siano delle impostazioni del server che rompano un po' le palle?
    le pagine risiedono su un server di register.

    grazie!

  2. #2
    in teoria come l'ho scritta dovrebbe funzionare, ma in rete non va...
    aiutatemi...

  3. #3
    nessuno che mi può aiutare? almeno ditemi se quello che ho scritto è corretto

  4. #4
    ...ho capito che devo rispondermi da solo...

    sto risolvendo in parte il problema.
    ho capito che su register il file global.asa non lavora correttamente, in pratica allo Application_onstart:

    Sub Application_OnStart
    'Session.Timeout = 1
    Application("Users") = ""
    End Sub

    setta la variabile Application("Users") sempre con valore nullo per ogni utente che si connette, quindi il valore che andrà a schermo non conterrà mai l'insieme degli utenti.

    ho aggirato questo problema in questo modo:

    ho creato una tabella su DB con un campo che contiene i nomi degli utenti logati in linea, come se fosse una variabile.

    questo è il global.asa:

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

    Sub Application_OnStart

    '*** Connessione DB SQL Sever in rete ****
    Dim connDB, Dbfile
    SET connDB = Server.CreateObject("ADODB.Connection")
    Dbfile = "Provider=SQLOLEDB;Data Source=XXX;uid=XXX;Password=XXX;database=XXX"
    connDB.Open Dbfile

    End Sub

    Sub Session_OnEnd

    Application.Lock
    query_users = "SELECT users FROM users_online WHERE id_users_online =1"
    set users = server.createobject("adodb.recordset")
    users.open query_users, connDB, 1, 1
    query_users = "UPDATE users_online SET users = '" & Replace( users("Users") ,"|" & Session("utente") & "|" ,"") & "' WHERE id_users_online =1"
    connDB.Execute(query_users)
    '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>


    nella pagina del login non faccio altro che fare l'update del record con i nuovi aggiunti.
    fin qua funziona...

    il problema è che non riesco a fare in modo che si cancelli il nome dell'utente quando questo ha chiuso la sessione.

    è corretto come ho scritto nel Session_OnEnd del global.asa?

    spero qualcuno possa rispondermi.

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.