69 messaggi dal 22 giugno 2004
Ho usato la soluzione suggeritami da flander....ora funziona.
L'unico inconveniente ora si ha quando l'utente loggato chiude il browser senza fare il logout, cosi ho creato una funzione che richiama la mia pagina di logout quando il browser viene chiuso e ho fatto richiamare la funzione dal attibuto onUnload....
Ora sarà che sto lavorando da stamattima e non connetto più...ma vorrei sapere perchè onUnload non mi funziona?

Questa la mia funzione:

function Logout()
{
<% if session("id_utente")<>"" then %>
window.open('logout2.asp','Uscita','toolbar=no scroolbars=no width=50 height=50');
<% end if %>
}

Questo il richiamo:

<body onUnload="Logout();" >

Perchè non funge??
110 messaggi dal 05 giugno 2002
Ciao,
ma l'utente può inserire i prodotti senza essere loggato?
110 messaggi dal 05 giugno 2002
Prova con onclose="Logout();"

Anche se dovesse funzionare non mi sembra la soluzione migliore cmq.
e bisogna verificare che funzioni con tutti i browser.
Modificato da flander il 15 dicembre 2005 08.53 -
593 messaggi dal 09 ottobre 2002
www.dotnetside.org
----->> onclose ?????
Questa mi è veramente nuova

Lo script non potrà mai funzionarti mediante la gestione dell'evento onUnload. Esso infatti si attiva quando la pagina viene scaricata (abbandonata) dal browser ovvero nel momento in cui passi da una pagina all'altra.
Perciò supponiamo che il tuo cliente mette un articolo nel carrello. Nel momento in cui passerebbe alla pagine degli articoli per un nuovo acquisto oppure alla pagine ordine per confermare l'acquisto, in ciascuno di questi e tanti altri eventi, si scatenerebbe l'hanler onUnload che svuoterebbe il carrello!

E' davvero questo quello che vuoi ottenere?

Quello che ti occorre lo ottieni semplicemente creandoti una funzione associata al logout dell'utente.

Hai applicato il consiglio di flander di ieri alle 15:53?
Ti suggeriva di agganciarti il carrello all'utente mediante l'aggiunta di una colonne "clienteID" che contenga appunto l'ID del cliente associato ad ogni suo inserimento.
A questo punto, quando il cliente va alla pagina di logout, lo script, recuperato in qualche modo (querystring, cookies, sessioni) l'ID del cliente, eseguirà eseguirà una query del tipo:

"DELETE FROM tabella_carrello WHERE clienteID = " & ID

Questo metodo tuttavia ha lo svantaggio che, se il cliente non effettua un logout esplicito, la tabella carrello non si svuoterebbe dei carrelli degli utenti oramai inattivi.

Risolveresti il problema aggiungendo al carrello un campo DATETIME con la data di inserimento degli articoli valorizzata in automatico.

Utilizzeresti poi il file global.asa(che andrai ovviamente a crearti nel modo opportuno) in modo che, mediante l'evento Session_OnStart(), ad ogni accesso al sito eliminerebbe i carrelli del giorno precendente con un:

"DELETE FROM tabella_carrello WHERE Data <= #" DateAdd("d",-1,Date()) & "#;"

Fermo restante quello che ho detto sopra.

In questo modo hai la certezza di aver eliminato i carrelli inutili sia mediante l'opportuno funzionamento del logout sia mediante la pulizia periodica effettuata dal file global.asa

Ciao

Pochi post. Anzi, quasi quasi spengo
http://www.dotnetside.org/
110 messaggi dal 05 giugno 2002
Ciao,
certo onClose non era un gran ke  cmq resta sempre il problema che se il carrello nn viene distrutto al logout e se l'inserimento dei prodotti viene legato all'ID, che verosimilmente è sempre lo steso, se l'accesso avviene cmq entro la giornata i prodotto restano cmq nel carrello fino al giorno dopo. Magari è utile, ma per risolvere questo problema dovresti lavorare sull'ora più che sulla data. Dipende sempre da cosa vuoi fare, magari è anche comodo che uno si ritrovi il carrello pieno dei prodotti ke aveva inserito per non perderli...


Stefano
69 messaggi dal 22 giugno 2004
Grazie per l'aiuto...ho seguito il suggerimento di flander delle 15.53 e se l'utente fa il logout in modo corretto è tutto ok....il mio probl è quando questo chiude il browser, quindi siccome non posso intercettare tale evento credo di dover seguire il consiglio di inserire un campo data...anche se la vedo un pò dura...

Ora ci provo e vi aggiorno....

Thanks
Chiedo scusa ma ripeto il suggerimento dato qualche giorno fa: se il carrello (vecchio) lo distruggi quando l'utente si logga la volta successiva risolvi il problema senza troppi sbattimenti (intercettare il logout con certezza è impossibile, fidatevi!)

Matteo Casati
GURU4.net

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.