11 messaggi dal 27 aprile 2004
Ciao a tutti.
Ho un problemino nell'effettuare una query quando scade la sessione.

Quello che vorreri fare è aggiornare un campo nel DB quando scade la sessione o causa tyimeout o causa chiusura del browser, ma per fare la query necessito di un valore che al login memorizzo in una variabile di sessione.

Ho notato che quando la procedura Session_OnEnd viene richiamata la variabile in questione non possiede più il valore che mi serve.

Come posso fare per non perdere tale valore ed utilizzarlo nella query che chiamo nella procedura Session_OnEnd in Global.asa?

Grazie a tutti in anticipo.

Massimo.
11.886 messaggi dal 09 febbraio 2002
Contributi
lascia perdere il global.asa, usa un'altra soluzione.

Spiega praticamente che devi fare. Ciao.

Enjoy learning and just keep making
11 messaggi dal 27 aprile 2004
Ciao,

dunque, ho un'applicazione alla quale si loggano diversi operatori.
In una variabile di sessione memorizzo il loro ID nel momento del login.(Nel mio file Index.asp).
Nel DB devo tenere traccia del loro tempo di connessione, e per una chiusura normale, ho un file(logout.asp) che gestisce il logout e fa i vari conti andando prima a scrivere i dati che mi interessano sul DB e poi chiude la sessione e l'applicazione.

Il problema sorge quando ho degli operatori che fanno scadere la sessione poichè non usano l'applicazione per un certo periodo(quindi fanno scadere il timeout) o se chiudono l'applicazione in modo anomalo, o con il pulsante di explorer(la 'X' rossa) e non con il tasto Esci dell'applicazione oppure se il PC o il browser "crashano".
Pensavo al file Global.asa perchè gestendo l'evento Session_OnEnd pensavo di fare le stesse operazioni che faccio nel file che mi gestisce il logout non anomalo.

Spero di essere stato chiaro, e ti ringrazio per l'interessamento.
Ciao,
Massimo.
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
dovresti provare a fare tutto su database.

Quando l'utente si logga, aggiorna un campo con la data/ora corrente.
Quando l'utente naviga nel sito, fai una query ad ogni richiesta di pagina, in modo che possa essere aggiornato il tempo di permanenza nel sito.

Esempio:
mi loggo alle 17.00
alle 17.01 visito una pagina -> la query fa 17.01 - 17.00 e scrive in un campo che sono stato connesso per 1 minuto.
alle 17.03 visito un'altra pagina -> la query fa 17.03 - 17.00 e scrive nello stesso campo il valore 3 (minuti).

17.05: a questo punto ho due alternative:
1) mi disconnetto usando la funzione di logout -> [opzionale] la query fa 17.05 - 17.00 e scrive 5 minuti nello stesso campo
2) altra alternativa: chiudo con la X di IE. la query non viene fatta e il mio tempo di connessione resta 3 minuti.

Se nel primo punto NON fai la query, in entrambi i casi ottieni lo stesso risultato: 3 minuti.

esiste un modo per determinare quando l'utente clicca la X. Bisogna predisporre un frame nascosto ed aprire una popup sull'onLoad di questo frame MA alcuni browser hanno il popup-killer e questa tecnica non è più universalmente valida.

Leggi anche questa discussione.
http://forum.aspitalia.com/forum/topic.aspx?PostID=215126

nel secondo caso

Enjoy learning and just keep making
11 messaggi dal 27 aprile 2004
Grazie per il suggerimento.

Ma non esiste un'alternativa che possa evitarmi di modificare quasi tutte le pagine per introdurre la query?

Grazie ancora, ciao,
Massimo.
11.886 messaggi dal 09 febbraio 2002
Contributi
non hai qualche file incluso nelle pagine? che so... elementi fissi tipo menu e intestazione, oppure funzioni per aprire la connessione al db.

Se hai un file incluso è abbastanza facile: il codice lo metti lì dentro e hai la modifica fatta su ogni pagina.

ciao

Enjoy learning and just keep making
324 messaggi dal 20 settembre 2001
www.iromtek.com
oppure puoi fare un frame nascosto che si aggiorna ogni tot di minuti (tipo ogni 15) che ti tiene la sessione aperta

"Il problema delle persone è che cercano negli altri qualità che questi non posseggono mentre dovrebbero apprezzare ed esaltare le qualità che gli altri realmente posseggono"

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.