Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Global.asa oppure?

  1. #1

    Global.asa oppure?

    Ho modificato il mio global.asa in modo che esegua una cancellazione di un record al momento dell'uscita di un client in questo modo :

    codice:
    Sub Session_OnEnd
    
      ' quando il visitatore esce (-1)
      Application.Lock
      Application("ActiveUsers") = Application("ActiveUsers") - 1
      Application.UnLock
      
      set objConn = Server.CreateObject("ADODB.Connection")
      objCONN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("fpdb\dbelstpr_001.mdb")	
      objConn.Open
    														
      sql = "DELETE FROM `TabStatistiche` WHERE `IdSessione` = '" & session.sessionID & "'"
      ObjConn.execute(sql)
    					
      objConn.Close
      Set objConn = Nothing
    
      Session.Contents.RemoveAll()
      Session.Abandon()
    
    End Sub
    Ma sembra non lo esegua. Sò che il global.asa non lo esegue subito ma con un certo ritardo.. però non credo esegua solo una parte perchè nel momento in cui esegue "Application("ActiveUsers") = Application("ActiveUsers") - 1" esegue anche il resto del codice no? E allora perchè non mi cancella dal db la riga? C'è un altro metodo? mi dicono dalla regia che si possono usare dei cookie per intercettare lo stesso evento ma come? un link? un qualcosa per documentarsi?

  2. #2
    Ho letto ora un articolo di microsoft che dice che hanno tolto i permessi di scrittura nel session on end.. che serve chiudere un buco quando si ha un intero scolapasta? E ora come posso risolver equesto prbolema? devo cancellare una riga in un db al momento di scandeza della session o della chiusura del browser (che però non coincide con l'effettivo session_onend) qualcuno sà darmi almeno un indizio?

    Edito : ho fatto una ricerca nel forum con "global.asa" ma non c'è altro che "cerca nel forum" non trovo una soluzione per eliminare un record alla scadenza della sessione.. ciò potrebbe sfarmi supporre che non si può fare?

  3. #3

  4. #4
    Originariamente inviato da Roby_72
    http://pro.html.it/articoli/id_215/idcat_11/pro.html

    Roby
    grazie lo stavo leggendo.. Sò di essere rompiscatole.. ma lui usa due metodi o aprendo una finestra o con un frame.. ora la seconda soluzione non può andare perchè gli spider dei motori di ricerca creerebbero un casino e non a tutti piacciono i frame e con la finestra purtroppo se uno ha dei programmi di popup killer non funzionerà mai... devo trovare una soluzione diversa ma come fanno i programmi di statistiche web?

  5. #5
    ok ora sò di essere uno scienziato pazzo.. ecco che ho tirato fuori :

    Nella pagina da monitorare metto nello head :

    <script type="text/javascript" src = "statistiche__log_out_js.asp"></script>

    E modifico il body così :

    <body onUnload="openchk();">

    nel file statistiche__log_out_js.asp c'è :

    codice:
    <%
    response.write "function openchk() { "
    
    Response.Write "var file='pulizia_stat.asp';"
    
    '// Richiama l'img e passa i valori
    Response.Write "document.open();"
    Response.Write "document.write('[img] + file + [/img]');"
    Response.Write "document.close();"
    
    response.write " }"
    
    %>
    e nel file pulizia_stat.asp questo :

    codice:
    <% 
      Dim Sql
    
      set objConn = Server.CreateObject("ADODB.Connection")
      objCONN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("fpdb\db.mdb")	
      objConn.Open
    														
      sql = "DELETE FROM `TabStatistiche` WHERE `IdSessione` = '" & session.sessionID & "'"
      ObjConn.execute(sql)
    					
      objConn.Close
      Set objConn = Nothing
    
      Session.Abandon()
      
      response.redirect "p.bmp"
     %>
    Funziona.. non ditemi che sono pazzo perchè lo sono

    Edito : oggi non deve essere la mia giornata.. ora non sò perchè non funziona piu.. o forse prima funzionava male help ora mi fà giustamente una pagina vuota con l'img

  6. #6
    allora il problema è il seguente, ho visto lo script sul cambio e controllo pagina in javascript (http://pro.html.it/view_forum.asp?id=215&idcat=11&pag=1) ora questo metodo purtroppo non funziona con i vari popup killer e win xp sp2.. ora se io potessi intercettare dove l'utente stà andando (come url) potrei usare un trucco e fargli aprire prima un img (che in realtà esegue una asp) e poi portarlo dove stà andando senza popup ne finestre sarebbe grandioso.. quache idea?

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    'Recupero la pagina di riferimento
    url = Request.ServerVariables("PATH_INFO")
    arr_url = split(url, "/")
    pag_url = arr_url(UBound(arr_url))
    Roby

  8. #8
    Originariamente inviato da Roby_72
    codice:
    'Recupero la pagina di riferimento
    url = Request.ServerVariables("PATH_INFO")
    arr_url = split(url, "/")
    pag_url = arr_url(UBound(arr_url))
    Roby
    e dove lo metto? ho provato a metterlo nella parte javascript dando come location=' & pag_url & "'; ma non funzia mi rimanda al codice javascript

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non lo so dove lo devi mettere perché non so quello che stai facendo.
    E' VbScript.

    Roby

  10. #10
    Voglio evitare di dover aprire un pop-up perchè un eventuale programma di popupkiller lo bloccherebbe. Allora faccio cosi :

    Nella pagina da monitorare metto nello head :

    <script type="text/javascript" src = "statistiche__log_out_js.asp"></script>

    E modifico il body così :

    <body onUnload="openchk();">

    nel file statistiche__log_out_js.asp scrivo :

    codice:
    <%
    response.write "function openchk() { "
    
    Response.Write "var file='pulizia_stat.asp';"
    
    '// Richiama l'img e passa i valori
    Response.Write "document.open();"
    Response.Write "document.write('[img] + file + [/img]');"
    Response.Write "document.close();"
    
    response.write " }"
    
    %>
    e nel file pulizia_stat metto :

    codice:
    <% 
      Dim Sql
    
      set objConn = Server.CreateObject("ADODB.Connection")
      objCONN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("fpdb\dbelstpr_001.mdb")	
      objConn.Open
    														
      sql = "DELETE FROM `TabStatistiche` WHERE `IdSessione` = '" & session.sessionID & "'"
      ObjConn.execute(sql)
    					
      objConn.Close
      Set objConn = Nothing
    
      Session.Abandon()
      
      response.redirect "p.bmp"
     %>
    Ma purtroppo ciò funziona solo se uno apre la pagina e poi la chiude o scrive nella barra dell'url un altro url, invece se l'utente preme F5, fà il refresh o clikka sul link gli apre la pagina vuota con scritto solo :

    <img src=pulizia_stat.asp border=0>


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.