Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464

    Carrello, Cookie e SessionID

    Salve a tutti, vorrei per cortesia che qualcuno del mestiere mi chiarisse un po le idee sulla seguente questione:

    Ho un carrello nel quale vengono aggiunti prodotti con in abbinamento una IDSession creata dal cookie che viene installato al primo accesso e che scade allo scadere della sessione.

    Se lo stesso utente ritorna per 3 giorni consecutivi sul sito ed aggiunge ogni giorno prodotti al carrello me li ritrovo ovviamene con IDSession diversi, uno per ogni accesso....

    Se volessi fare in modo che lo stesso utente possa recuperare lo stesso carrello diciamo anche a distanza di 15 giorni... devo semplicemente allungare la scadenza del cookie?

    Grazie in anticipo
    F

    PS: Questo il file che legge o crea il cookie:

    codice:
        If Request.Cookies("Ecom")("SessionID") = "" Then
            Response.Cookies("Ecom").Expires = CStr(DateAdd("n", DurataCookie, Now()))
            Response.Cookies("Ecom").Secure = FALSE
            Response.Cookies("Ecom")("SessionID") = Casuale
            SessionID = Request.Cookies("Ecom")("SessionID")
        Else
            Response.Cookies("Ecom").Expires = CStr(DateAdd("n", DurataCookie, Now()))
            SessionID = Request.Cookies("Ecom")("SessionID")
        End If
    Ultima modifica di Partisan75; 24-07-2018 a 17:39

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    io lascerei perdere la session ed userei l'ID dell'utente.

    al limite puoi inserire nel record il SessionID solo per capire se i prodotti sono stati aggiunti o messi nella stessa sezione.

    comunque non credo che c'entri la durata del cookie, il session id è generato lato server dal framework ogni volta che l'utente si connette e da' vita as una sessione.


    puoi anche disabilitarlo, come descritto qui (ed usare un ID piu' congruente, come appunto quello utente):
    https://msdn.microsoft.com/it-it/lib...v=vs.100).aspx

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    Grazie per la preziosa risposta.

    Nel frattempo ho provato a cambiare la durata del cookie portandola a 15 giorni ed ora se faccio diversi accessi a distanza di ore o di giorni mi conserva lo stesso carrello, ed è ok.

    Prima invece, nonostante la durata fosse di 1440 minuti ossia 1 giorno, mi creava una nuova IDSession per ogni accesso a distanza anche di qualche decina di minuti...

    Sarebbe meglio seguire il tuo consiglio sull'ID dell'utente però non voglio dover cambiare tutto il resto per cui vorrei lasciarlo così.

    Procedo e nel caso chiedo ancora aiuto
    Grazie

  4. #4
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,254
    Il session ID deve vivere il minor tempo possibile.
    Poi dai per scontato alcune cose, se riavviano la macchina la sessione è persa, se il client pulisce la cache la sessione rimane attiva ma non verrà mai letta.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    Perche deve vivere il minor tempo possibile?
    La macchina lho riavviata e se rifaccio il login nel carrello ancora trovo gli stessi prodotti.... quindi sarebbe utile per quello che serve a me cioè lasciare il carrello disponibile...

    Se invece lascio il cookie vivere 1440 minuti ad un successivo accesso magari dopo 2 giorni del cliente non trova piu il carrello suo nonostante lo stesso esista amcora nel database... perche lo cancello dopo 15 giorni...

    Alla luce di queste esigenze, come mi consigli di risolvere?
    grazie in anticipo
    F

  6. #6
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,856
    Ma se hai il carrello in db perchè ti appoggi al cookie?
    Quando l'utente accede gli vai a ricreare il carrello con quello che hai in db e amen...
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    Ottima idea ma problema risolto a metà perche c'è la possibilità di aggiungere al carrello anche senza aver fatto il login quindi la Session("EMail") non la conosco ancora ed aggiungo il prodotto al carrello solo con la SessionID...

    Risultato che quando poi fa il login avrò i prodotti aggiunti con l'attuale SessionID (destinata a scomparire quando questa scade) e prodotti conservati perche aggiunti con la Session("EMail") facili da recuperare...

    per risolvere il tutto dovrei evitare di aggiungere prodotti al carrello prima di aver fatto il login, quindi con la sola SessionID ... giusto?


    codice:
    SQLOrdine = " SELECT * FROM carrello WHERE carrello_email = '"& Session("EMail") &"' OR IDSessione = '"& SessionID &"'"

  8. #8
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,856
    Se le righe del carrello sono legate alla sessionID e l'utente non fa mai login, che tu il carrello lo metta nel cookie o lo metta nel db, lo perdi ad ogni fine sessione, non c'è modo di recuperarlo.
    Puoi permettere l'inserimento delle righe in carrello anche a utenti non loggati, ma se prima del termine della sessione non fanno login quelle righe restano morte, non più accoppiabili a nessuno.
    Ultima modifica di supermac; 27-07-2018 a 14:36
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    si è vero, ho aggiunto un'altra cosa: se l'utente aggiunge il prodotto al carrello e prima della scadenza della sessione fa il login, faccio un update al carrello aggiungendo anche altri dati ai prodotti la dove c'era solo la sessionid...

    piu di questo nmon posso fare... giusto?
    grazie ancora

  10. #10
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,856
    de nada ;-)
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.