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

    Logica carrello con sessioni

    Sto construendo un carrello elettronico e pensavo di utilizzare le sessioni:

    pensavo di memorizzare quindi ( esempio semplicissimo) i dati in una tabella Carrello in questo modo:

    Sessione ( Session.session ID )
    Codice Prodotto

    Quando vado a visualizzare il carrello basta ceracre per la sessione e restituire i prodotti.

    Il mio dubbio nasce quando il cliente chiude la pagina magari senza confermare l'ordine, come faccio a cancellare i record inerenti alla sessione appena chiusa?
    http://www.puntoexewld.com

  2. #2

    Re: Logica carrello con sessioni

    Originariamente inviato da ut_scollegato
    Sto construendo un carrello elettronico e pensavo di utilizzare le sessioni:

    pensavo di memorizzare quindi ( esempio semplicissimo) i dati in una tabella Carrello in questo modo:

    Sessione ( Session.session ID )
    Codice Prodotto

    Quando vado a visualizzare il carrello basta ceracre per la sessione e restituire i prodotti.

    Il mio dubbio nasce quando il cliente chiude la pagina magari senza confermare l'ordine, come faccio a cancellare i record inerenti alla sessione appena chiusa?
    Se l'utente chiude la pagina, la sessione scade automaticamente. Non ci sono problemi.

    Nel database, invece, ci metti i dati dei prodotti solo quando conferma l'acquisto e la transazione va a buon fine.
    «Nella mia carriera ho sbagliato più di novemila tiri. Ho perso quasi trecento partite. Ventisei volte i miei compagni mi hanno affidato il tiro decisivo e l'ho sbagliato. Nella vita ho fallito molte volte. Ed è per questo che alla fine ho vinto tutto» - Michael Jordan

    «Prima ti ignorano, poi ti deridono, poi ti combattono. Poi vinci.» - Gandhi

  3. #3
    Garzie per il supporto, ho un dubbio....

    ....dove memorizzo gli articoli di quel utente prima che confermi l'ordine?
    http://www.puntoexewld.com

  4. #4
    Originariamente inviato da ut_scollegato
    Garzie per il supporto, ho un dubbio....

    ....dove memorizzo gli articoli di quel utente prima che confermi l'ordine?
    Cookies.

  5. #5
    Non esiste un altro metodo, ti spiego perchè:

    - voglio evitare problematiche sull'abilitazione dei coockie
    - forse li devo già usare per quanto rigurda il login

    Forse ho una soluzione, se faccio una varibile di sesisone del tipo:

    Session("CodiceUtente")="CodiceArticolo1-CodiceArticolo2-CodiceArticolo3"

    Dovrebbe rimanermi in "memoria" finche non chiudo la finestra di internet explorer!
    http://www.puntoexewld.com

  6. #6
    Originariamente inviato da ut_scollegato
    Non esiste un altro metodo, ti spiego perchè:

    - voglio evitare problematiche sull'abilitazione dei coockie
    - forse li devo già usare per quanto rigurda il login

    Forse ho una soluzione, se faccio una varibile di sesisone del tipo:

    Session("CodiceUtente")="CodiceArticolo1-CodiceArticolo2-CodiceArticolo3"

    Dovrebbe rimanermi in "memoria" finche non chiudo la finestra di internet explorer!
    esatto. Io ti consiglio di fare più precisamente così:

    la variabile di sessione la chiami carrello.
    Sarà una variabile stringa.

    Se un cliente mette nel carrello per esempio 3 prodotti diversi la stringa apparirà in questo modo:

    1,3,32;1,3,65;1,2,77

    dove:

    il punto e virgola è il delimitatore fra un prodotto e l'altro.

    Il primo numero rappresenta la quantità.
    il secondo numero rappresenta la categoria del prodotto.
    Il terzo numero rappresenta l'Id del prodotto.

    quindi se l'utente aggiunge un ulteriore prodotto ID 32, della categoria 3, la variabile session diventerà:

    2,3,32;1,3,65;1,2,77

    Poi quando devi leggere il carrello, non fai altro che uno split sul punto e virgola, e per ogni split sul punto e virgola fai un ulteriore split sulla virgola. Ciò può essere agevolmente fatto con due cicli annidiati.

    «Nella mia carriera ho sbagliato più di novemila tiri. Ho perso quasi trecento partite. Ventisei volte i miei compagni mi hanno affidato il tiro decisivo e l'ho sbagliato. Nella vita ho fallito molte volte. Ed è per questo che alla fine ho vinto tutto» - Michael Jordan

    «Prima ti ignorano, poi ti deridono, poi ti combattono. Poi vinci.» - Gandhi

  7. #7
    creare un carrello-wishlist sul database?

    ovvero hai sempre nel db gli articoli che quell'utente ha scelto... segni magari anche ora e data... così la volta dopo io che vengo a fare la spesa non devo ricomincaire tutto da capo...

    fai una semplice tabella di relazione molti a molti... ovvero campo ID_prodotti e campo ID_utente... quando vai a fare la select filtri where id_utente = utente_loggato ed hai risolto... (volendo appunto aggiungi i campi data e ora in maniera da avere un cronologia delle operzioni che l'utente fa nell'acquisto e puoi riordinarle quando richiesto dall'utente)

    quando un scegli un prodotto non devi far altro di aggiungere un record nella tabella ed il gioco è fatto
    Grazie sempre di tutto!!!
    Alberto

  8. #8
    ah dimenticavo... o metti un camp per segnare la merce acquistata oppure la trasferisci di tabella... oppure ancora la cancelli...
    Grazie sempre di tutto!!!
    Alberto

  9. #9
    Il discorso di memorizzare il carrello in un database è altrettanto valido, ma se vuoi che anche un qualsiasi utente non registrato possa iniziare a metter roba nel carrello, credo che la soluzione migliore restino le session.

    Dipende dalla flessibilità che desideri concedere ai tuoi utenti.
    «Nella mia carriera ho sbagliato più di novemila tiri. Ho perso quasi trecento partite. Ventisei volte i miei compagni mi hanno affidato il tiro decisivo e l'ho sbagliato. Nella vita ho fallito molte volte. Ed è per questo che alla fine ho vinto tutto» - Michael Jordan

    «Prima ti ignorano, poi ti deridono, poi ti combattono. Poi vinci.» - Gandhi

  10. #10
    un tempo ne stavo realizzando uno così...
    per l'utente venivano registrati sotto un nome come GUEST_numero_random... con ben visibile che per effettuare la transazione c'era da registrarsi - loggarsi... una volta effettuato login i dati venivano aggiornati col nome utente che sostituiva il nome provisorio...

    ma ho notato che prendeva parecchie risorse...
    Grazie sempre di tutto!!!
    Alberto

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.