Visualizzazione dei risultati da 1 a 4 su 4

Discussione: nomi utenti connessi

  1. #1
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412

    nomi utenti connessi

    Ciao ragazzi, ecco il mio problema:

    mi uno script che mi scriva i nomi degli utenti connessi al sito. In un precedente post ho trovato qualcosa, e vorrei adattarlo al mio sito ma con alcune modifiche.

    Ecco ciò che ho trovato in un precedente post:


    GLOBAL.ASA
    ----------

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

    Sub Application_OnStart
    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>



    Il file che visualizza gli utenti
    ---------------------------------

    <%
    dim arrUtenti, i
    Response.Write "<font size=1 face=Verdana, Arial, Helvetica, sans-serif>Utenti Collegati:</font>
    "
    arrUtenti = Split(Application("Users"),",")

    for i = 0 to UBound(arrUtenti)
    Response.Write "<font size=1 face=Verdana, Arial, Helvetica, sans-serif>" & arrUtenti(i) & "</font>"
    next
    %>



    il file che effettua il controllo degli utenti
    ----------------------------------------------

    <%
    dim user, pass
    user = request.form("user")
    pass = request.form("pass")
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../mdb-database/interventi.mdb")
    Conn.Open strConn
    sql = "SELECT * FROM registrazione_utente1"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.open sql, conn, 3,3

    do while not(rs.eof)
    if user = rs("nick") and pass = rs("pass") then
    Response.Cookies("www.sito.it")("id") = rs("id")
    Response.Cookies("www.sito.it")("user") = rs("nick")
    Response.Cookies("www.sito.it")("avatar") = rs("avatar")
    Response.Cookies("www.sito.it")("email") = rs("email")
    response.cookies("www.sito.it").Expires = date() + 365
    response.cookies("www.sito.it").Secure = false


    ' controllo utenti

    Session("utente") = rs("nick")
    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

    ' fine controllo utenti

    response.redirect "../index.asp"
    end if
    rs.movenext
    loop

    rs.Close
    set rs = Nothing
    conn.Close
    set conn = Nothing

    response.redirect "../index.asp?errore=si"
    %>


    Ho due problemi:

    1) Se l'utente chiude il browser, risulta ancora connesso.
    2) Vorrei che comparissero i nomi non solo di chi si loga, ma di chi risulta già logato grazie ai cookie.

    mi potete aiutare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    1,003

    Re: nomi utenti connessi

    c'è un bug nello script che hai postato

    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
    vedi, se un utente non fa il login, il suo username non compare nella lista, tuttavia viene lo stesso eseguita l'eliminazione dell'user dalla stringa.
    siccome session("utente) non contiene nulla, in quanto non c'è stato il login viene eliminata solo la virgola, provocando un casino.
    es.

    prima dell'accesso dell'utente che non si logga

    application("users") contiene:
    digitm,tia86

    quando scade la sessione diventa
    digitmtia86

    per rimediare a questo crea al login una sessione ad es. session("login") ed impostala a true quando fa il login e modifica lo script in :

    codice:
    Sun Session_OnStart
    session("login") = false
    
    end sub
    
    
    Sub Session_OnEnd 
    
    if session("login") then
    
    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 if
    
    End Sub

  3. #3
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412
    Ho modificato il global.asa così:

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

    Sun Session_OnStart
    session("login") = false

    end sub


    Sub Session_OnEnd

    if session("login") then

    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 if

    End Sub

    </SCRIPT>



    e lo script dell'autenticazione così:
    ---------------------------------------------------


    <%
    dim user, pass
    user = request.form("user")
    pass = request.form("pass")
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../mdb-database/interventi.mdb")
    Conn.Open strConn
    sql = "SELECT * FROM registrazione_utente1"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.open sql, conn, 3,3

    do while not(rs.eof)
    if user = rs("nick") and pass = rs("pass") then
    Response.Cookies("www.sito.it")("id") = rs("id")
    Response.Cookies("www.sito.it")("user") = rs("nick")
    Response.Cookies("www.sito.it")("avatar") = rs("avatar")
    Response.Cookies("www.sito.it")("email") = rs("email")
    response.cookies("www.sito.it").Expires = date() + 365
    response.cookies("www.sito.it").Secure = false

    ' controllo utenti
    session("login") = true
    Session("utente") = rs("nick")
    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

    ' fine controllo utenti

    response.redirect "../index.asp"
    end if
    rs.movenext
    loop

    rs.Close
    set rs = Nothing
    conn.Close
    set conn = Nothing

    response.redirect "../index.asp?errore=si"
    %>


    così e giusto?
    ma cosa devo mettere nella pagina di logout per evitare che l'utente compaia ancora?


    questa è la mia pagina di logout:

    <%
    Response.Cookies("www.sito.it")("user") = ""
    response.redirect "../index.asp"
    Session("login") = "false"
    %>

  4. #4
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412

    Re: Re: nomi utenti connessi

    codice:
    Sun Session_OnStart
    session("login") = false
    
    end sub
    
    
    Sub Session_OnEnd 
    
    if session("login") then
    
    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 if
    
    End Sub
    ma nell'if non manca qualcosa? if session("login") = .... then

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.