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

    Utenti online senza global.asa

    Qualcuno conosce un modo per conteggiare gli utenti online (non iscritti) senza far uso del global.asa? Ve ne sarei molto grato.

  2. #2
    data la domanda giunta casualmente alla mia vista do la mia risposta

    il meccanismo è moooolto semplice

    nel database di profilazione si hanno due campi in più

    | USER_LOGIN | USER_LASTACTION |

    quando un utente si autentica (indi ad OGNI pagina aperta) si controlla l'ora attuale con quella in USER_LASTACTION.

    se la differenza è maggiore di X (io uso 5 minuti) allora si scrive la data attuale in USER_LOGIN e in USER_LASTACTION

    se la differenza è minore di X si scrive la data attuale in USER_LASTACTION

    ----

    per controllare se un utente è online si controlla la differenza fra la data attuale e USER_LASTACTION, se la differenza è minore di X l'utente è online (fare una funzioncina è roba da tre secondi)

    inoltre si può sapere da quanto tempo è online (se è online secondo il criterio appena enunciato) facendo la differenza fra data attuale e USER_LOGIN

    ---

    se servono funzioni già scritte più o meno ho tutto
    ma far pratica fa semrpe bene
    san imente saluta

    * http://simonecingano.it *

  3. #3
    Però mi pare di capire (spero di non sbagliarmi) che così l'utente si deve autenticare:
    "... nel database di profilazione si hanno due campi in più
    | USER_LOGIN | USER_LASTACTION |
    quando un utente si autentica ..."

    A me invece serve contare tutti gli utenti, anche i non registrati e quindi non autenticati, cioè anche il normalissimo visitatore casuale.

    Scusami se ho capito male

  4. #4
    per quelli ho una tabella parallela di guest che vengono riconosciuti tramite un codice univoco generato (puoi benissimo usare il sessionid) scritto nel db e nei cookie...

    anche in questo caso vale la regola del login e dell'ultima azione.

    quando viene visualizzata la lista degli utenti online tutti i guest non connessi (ultima azione più "vecchia" di X minuti dalla data attuale) vengono eliminati dalla tabella
    san imente saluta

    * http://simonecingano.it *

  5. #5
    OK! Ora ci provo e nel caso non dovessi riuscirci mi rivolgerò ancora a ... San imente.
    Per il momento ti ringrazio, sei sempre gentilissimo.

  6. #6
    Originariamente inviato da michele.santoro
    San imente.
    ecco li...
    alla fine doveva succedere anche a me
    a furia di santo kluster mi hanno fatto santo pure a me :maLOL:
    san imente saluta

    * http://simonecingano.it *

  7. #7
    Originariamente inviato da imente
    ecco li...
    alla fine doveva succedere anche a me
    a furia di santo kluster mi hanno fatto santo pure a me :maLOL:

    eh eh eh io di santo ho solo il nome

  8. #8
    Originariamente inviato da michele.santoro
    OK! Ora ci provo e nel caso non dovessi riuscirci mi rivolgerò ancora a ... San imente.
    Per il momento ti ringrazio, sei sempre gentilissimo.
    Imente, forse intendeva san ODi mente ?

    eheheh

    ciauz!!!!

  9. #9
    ciao, scusate se mi intrometto, ma anch'io ho lo stesso problema, cioè per via di malfunzionamenti del file global.asa (il sito risiede su register) sono costretto ad usare un DB d'appoggio.

    ho parzialmente risolto la cosa, ma il problema rimane cancellare i nomi di quelli che abbandonano la sessione.

    potresti gentilemente illustrare meglio il procedimento che hai adottato imente?

    io ho fatto una cosa del genere, ma appunto mi trovo allo scoglio finale che non riesco a superare:

    file global.asa (in rosso la parte che dovrebbe eliminare l'utente con la sessione scaduta, ma non va...)

    <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
    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
    Application.Lock
    if (Session("utente") & "") <> "" then

    query_users = "UPDATE users_online SET users = '" & Replace( users("Users") ,"|" & Session("utente") & "|" ,"") & "' WHERE id_users_online =1"
    connDB.Execute(query_users)
    end if
    '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>

    poi ho creato una semplice tabella con ID_USER_ONLINE e un campo USER_ONLINE che racchiude la stringa degli utenti separati dal |

    parte della pagina col login (questa funziona correttamente)


    Session("utente") = statuscookie("username")

    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
    if not users.BOF and not users.EOF then


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


    accetto qualsiasi consiglio, grazie

  10. #10
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    Originariamente inviato da imente

    inoltre si può sapere da quanto tempo è online (se è online secondo il criterio appena enunciato) facendo la differenza fra data attuale e USER_LOGIN
    come fai a capire da quanto è online se ogni 5 minuti e 1 secondo aggiorni il campo user_login?

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.