Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870

    Utenti connessi, nome fantasm...a

    Mi riferisco a questo esempio, trovato con la ricerca sul forum:
    http://www.aspitalia.com/liste/usag/script.aspx?ID=386

    ed ho creato il global.asa:
    codice:
    <SCRIPT LANGUAGE="VBScript" RUNAT="Server"> 
    
    'numero utenti connessi
    Sub Application_OnStart 
    Application("intActiveUserNumber") = 0 
    End Sub 
    
    Sub Session_OnStart 
    
    Session.Timeout = 20 
    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 
    
    'nome utenti connessi
    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>
    nella pagina che controlla utente e password, ovvero la pagina di autenticazione, ho aggiunto la routine che aggiunga alla variabile di Applicazione l'utente appena autenticato:
    codice:
    Session("utente") = Request("Utente")
    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
    per mostrare la lista degli utenti loggati:
    codice:
    <%
    if session("admin") <> "1" then
    response.redirect("../login/negato.asp")
    end if
    
    dim arrUtenti
    Response.Write "Utenti Collegati:
    "
    arrUtenti = Split(Application("Users"),"|")
    
    for i = 0 to UBound(arrUtenti)
      Response.Write arrUtenti(i) & "
    "
    next
    %>
    la pagina non dà errore ma non mostra nessuno dei nomi degli utenti connessi, dove sbaglio?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412
    Io per visualizzarli uso solo:

    <% for i = 0 to UBound(arrUtenti) %>
    <%= arrUtenti(i) %>
    <% next %>

    e va...

  3. #3
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Grazie, ma:
    codice:
    <%
    if session("admin") <> "1" then
    response.redirect("../login/negato.asp")
    end if %>
    
    <% for i = 0 to UBound(arrUtenti) %> 
    <%= arrUtenti(i) %> 
    <% next %>
    Microsoft VBScript runtime error '800a000d'
    Type mismatch: 'UBound'
    :master:

  4. #4
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412
    Originariamente inviato da fraude
    Grazie, ma:
    codice:
    <%
    if session("admin") <> "1" then
    response.redirect("../login/negato.asp")
    end if %>
    
    <% for i = 0 to UBound(arrUtenti) %> 
    <%= arrUtenti(i) %> 
    <% next %>
    Microsoft VBScript runtime error '800a000d'
    Type mismatch: 'UBound'
    :master:


    opsss, avevo anche io:

    dim arrUtenti
    arrUtenti = Split(Application("Users"),"|")

  5. #5
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Grazie ma così non vedo niente! VVoVe:
    codice:
    dim arrUtenti
    arrUtenti = Split(Application("Users"),"|")
    %>
    <% for i = 0 to UBound(arrUtenti) %> 
    <%= arrUtenti(i) %> 
    <% next %>

  6. #6
    prova a stampare la session un passo prima o un passo dopo lo split

  7. #7
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da DarioN1
    prova a stampare la session un passo prima o un passo dopo lo split
    Scusa questa non l'ho capita, non ti seguo...
    nel frattempo ho modificato il global.asa così:
    codice:
    <SCRIPT LANGUAGE="VBScript" RUNAT="Server"> 
    
    
    Sub Application_OnStart 
    Application("intActiveUserNumber") = 0 
    Application("Users") = ""
    End Sub 
    
    Sub Session_OnStart 
    
    Session.Timeout = 20 
    Application.Lock 
    Application("intActiveUserNumber") = Application("intActiveUserNumber") + 1 
    Application.UnLock 
    
    End Sub 
    
    
    Sub Session_OnEnd 
    
    Application.Lock 
    Application("intActiveUserNumber") = Application("intActiveUserNumber") - 1 
    Application("Users") = Replace( Application("Users") , Session("utente") & "|" ,"")
    Application.UnLock 
    
    End Sub 
    
    
    </SCRIPT>
    è corretto?

  8. #8
    Utente di HTML.it L'avatar di digitm
    Registrato dal
    May 2002
    Messaggi
    412
    Ma se fai così, ti restituisce in tutte e due i casi il nome dell'utente?

    Session("utente") = Request("Utente")
    response.write "prova1: " & Session("utente")
    if InStr(1, Application("Users"), Session("utente") & "|" ) = 0 then
    response.write "prova2: " & Session("utente")
    '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

  9. #9
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    No, restituisce:
    prova1: prova2:
    Response object error 'ASP 0156 : 80004005'

    Header Error

    /ris.asp, line 66

    The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.


  10. #10
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Allora adesso è ok; il problema è che mi aggiunge una sessione ogni volta che mi autentico anche se sono già autenticato, mi spiego, cioè:

    Utenti collegati: pippo, pippo, pippo, giovanni

    perchè? :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.