Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    239

    global.asa e nomi degli utenti online

    Ho preparato uno script che inserisce in una variabile di tipo application il nome di un utente al momento del login e lo cancella quando si esegue il logout, ma se un utente chiude direttamente la pagina il nome rimane.

    Vi posto il codice che come ho detto funziona ametà:
    codice:
    'Nella pagina del login
    if InStr(1, Application("utenti_online"), Session("Username") & "|" ) = 0 then 
    	Application.Lock 
    	Application("utenti_online") = Application("utenti_online") & Session("Username") & "|" 
    	Application.UnLock
    End If
    
    'Nella pagina di logout
    if InStr(1, Application("utenti_online"), Session("Username") & "|" ) <> 0 then 
    	Application.Lock 
    	Application("utenti_online") = Replace(Application("utenti_online"), Session("Username") & "|", "") 
    	Application.UnLock 
    end if
    
    'Nel global.asa
    Sub Session_OnEnd
    if InStr(1, Application("utenti_online"), Session("Username") & "|" ) <> 0 then 
    	Application.Lock 
    	Application("utenti_online") = Replace(Application("utenti_online"), Session("Username") & "|", "") 
    	Application.UnLock 
    end if
    End Sub
    ma come si risolve questo problema?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    prova a diminuire il timeout nel global.asa

    dimmi qualcosa che se funziona mi interessava

    ciao Andrea
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    239
    sin dall'inizio il global.asa era settato così
    codice:
    Sub Application_OnStart	
    	Session.Timeout = 3
    	Application.Lock
    	Application("online") = 0
    	Application("utenti_online") = ""
    	Application.UnLock
    End Sub
    non penso che vada impostato a meno di 3 minuti...

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da Maxx_ale
    sin dall'inizio il global.asa era settato così
    codice:
    Sub Application_OnStart	
    	Session.Timeout = 3
    	Application.Lock
    	Application("online") = 0
    	Application("utenti_online") = ""
    	Application.UnLock
    End Sub
    non penso che vada impostato a meno di 3 minuti...

    prova ad aggiungere questo nel global.asa
    Sub Application_OnStart

    Application("utenti_online") = 0
    if InStr(1, Application("utenti_online"), Session("Username") & "|" ) = 0 then
    Application.Lock
    Application("utenti_online") = Application("utenti_online") & Session("Username") & "|"
    Application.UnLock
    End If
    End Sub
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    239
    Non penso che questo possa aiutare perchè l'OnStart ha effetto solo quando si avvia per la prima volta il global.asa...

    e poi questo aggiunge mentre io dovrei far togliere in automatico...

    doppio doh!

  6. #6
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    661
    Originariamente inviato da Maxx_ale
    Non penso che questo possa aiutare perchè l'OnStart ha effetto solo quando si avvia per la prima volta il global.asa...

    e poi questo aggiunge mentre io dovrei far togliere in automatico...

    doppio doh!

    se ne parlava da poco... :rollo:

    inserisci l'evento onunload e poi fai il redirect (lato client) alla pagina di logout, cosi facendo quando l'utente esce dalla pagina (perch' chiude il browser o reindirizzi) si aprirà una automaticamente la pagina contenente lo script per il logout .

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    239
    scusa non ho capito bene :master:

    L'evento onunload lo devo inserire nel global.asa o tramite javascript nella pagina?

    non ho le idee molto chiare, ma se appena la pagina si chiude ne faccio aprire un'altra al client non è molto bello...

    credo che ci sia un metodo pulito e funzionante, più o meno quello che si usa nei forum come questo... ma qual'è?

  8. #8
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    661
    Originariamente inviato da Maxx_ale
    scusa non ho capito bene :master:

    L'evento onunload lo devo inserire nel global.asa o tramite javascript nella pagina?

    non ho le idee molto chiare, ma se appena la pagina si chiude ne faccio aprire un'altra al client non è molto bello...

    credo che ci sia un metodo pulito e funzionante, più o meno quello che si usa nei forum come questo... ma qual'è?

    a me viene da pensare che invece non esista un altro modo, perche' l'application viene "aggiornato" solo lato sever (quando si chiama una pag), solo dopo viene passata al client una "copia" dell' application, a questo punto il client non è piu' parte dell'elaborazione server, quindi qualsiasi cosa faccia, il server DEVE ESSERE RICHIAMATO per essere aggiornato.

    spero di sbagliarmi

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    239
    a parte che non ho capito bene cosa intendi...

    io ho la limitazione di non poter usare frame o scrivere/modificare file con il FSO e questo non mi permette di adottare una buona parte delle soluzioni che ho trovato con google


    Ma perchè a me non funziona il session_onend?
    ho visto in altri siti che questo è il metodo consigliato

  10. #10
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    661
    Originariamente inviato da Maxx_ale
    a parte che non ho capito bene cosa intendi...

    io ho la limitazione di non poter usare frame o scrivere/modificare file con il FSO e questo non mi permette di adottare una buona parte delle soluzioni che ho trovato con google


    Ma perchè a me non funziona il session_onend?
    ho visto in altri siti che questo è il metodo consigliato

    tu vuoi che l'utente quando esce non compaia piu' nella lista, guisto?
    allora se fa logout tutto ok, giusto ?
    ma se chiude il browser non fa il logout, guisto?
    il session_onEnd funziona solo se viene richiamato,quindi non funzionerà mai se non riceve ordini dal client, a questo punto è inutile fare centomila cose sul client se non richiami il server, e se il client chiude la sessione prima di comunicarlo al server quest'ultimo continuerà a tenerlo in memoria fino alla scadenza anche se il client è gia' andato via.


    a questo punto il mio consiglio era quello di forzare il client a fare logout, in modo che quando il client chiude, il browser gli apre una pagina che gli farà il logout e chiuderà automaticamente la finestra al termine,oppure la fai apparire con una frase del tipo "grazie per aver visitato..." ecc.

    Tutto qui, non mi sembra poi cosi' difficile

    comunque capisco la tua esigenza di avere una sito molto profesionale
    e di conseguenza non volere controllare la tua applicazione lato client, ma solo lato server





    io ho la limitazione di non poter usare frame o scrivere/modificare file con il FSO e questo non mi permette di adottare una buona parte delle soluzioni che ho trovato con google
    perchè hai delle limitazioni di questo tipo ?

    non da aruba vero ?! :master:

    che c'entra FSO e frame con la comunicazione client/server alla chiusura del browser?

    comunque in bocca al lupo



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.