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

    Logica di un carrello [ASP]

    Ho creato un carrello che funziona sia che un utente sia loggato oppure che sia un ospite...

    all'inserimento di un prodotto nel carrello inserisco il record nella tabella "carrello" che contiene id_cliente, id_prodotto, quantita

    se un utente registrato effettua l'ordine non c'è problema... inserisco l'id dell'utente nel campo id_cliente

    ma se un utente non è registrato che faccio?

    io ci ho inserito l'id della sessione...

    funziona alla grande... ma chè un problema...

    che dalla tabella "carrello" i record vengono eliminati solo ad ordine concluso... quindi mentre per un utente registrato i prodotti restano nel carrelo e sono recuperabili alla login successiva, per un tente che non è registrato e non completa l'ordine quei prodotti inseriti nel carrello vanno persi... questo non mi interessa...

    IL PROBLEMA E' CHE I RECORD MIR ESTANO LO STESSO NEL DB!!!

    Come devo fare??
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  2. #2
    Stai chiedendo come tenere traccia di un ordine di un utente tramite una tabella che dovrebbe essere legata al'id dell'utente, ma che in questo caso non ha un id perchè l'utente non è registrato?

    Non è impossibile?

    Anche se metti l'id della sessione come ID_utente cosa cambia?.... non serve a niente, secondo me. Perchè comunque quell'ID_utente (l'id di sessione dell'utente non loggato) non legherà la tabella ad alcuna entry nella tabella degli utenti (infatti non è registrato).

    Cambia approccio..... se vuoi far funzionare tutto anche agli utenti non registrati questa metodologia non funziona.... (almeno secondo il mio umile parere)

  3. #3
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Puoi fare un controllo sulla data.
    Quando inserisci i prodotti nel carrello metti la data.
    Quando l'amministratore entra nel pannello di controllo (generalmente almeno una volta al giorno) cancelli i prodotti più vecchi di 2 giorni... che sono di sicuro quelli di chi non era registrato...

    Roby

  4. #4
    hai ragione per quanto riguarda il fatto che non legherà mai con la tabella utenti, ma forse mi sono spiegato male...

    ho una tabella CARRELLO con i campi: id_cliente, id_prodotto, quantita

    questa tabella se il cliente non è logato mi serve solo per conteggiare i prodoti nel carrello e il prezzo totale del carrello in quel momento, quindi inserendo l'id della sessione come id_cliente ottengo quello che voglio, non devo ricollegarmi alla tabella utenti...

    il problema è che se l'utente non logato chiude il browser o cambia sito e non conclude l'ordine, la sessione scade e i record nella tabella CARRELLO rimangono...

    io invece voglio eliminarli... (dovrei eliminarli forse allo scadere della sessione? ma come?)
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  5. #5
    per farti capire meglio... i record nella tabella CARRELLO vengono inseriti nel momento in cui inserisco un prodotto nel carrello, che io sia logato o meno, l'unica differenza è che se sono logato l'id_cliente è quello del mio profilo e quindi anche se non concludo l'ordine, quando riaprirò il mio profilo troverò quei prodotti nel carrello, mentre se non sono logato come id_cliente inserisco l'ID della sessione... capito ora?
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ho capito perfettamente... e ti ho risposto.
    Se chiude il browser potresti far partire una funzione sull'onUnload ma se digita un nuovo url non te ne accorgi....
    L'unica cosa a mio avviso è mettere la data oltre agli altri dati e provvedere ogni due giorni a ripulire la tabella.

    Roby

  7. #7
    Ti ringrazio ROBY, ma allora secondo te quale sarebbe l'approccio giusto per fare si che si possano effettuare ordini da utente registrato e da ospite?

    A parte la soluzione che hai dato a me, partendo da zero tu cosa faresti?
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Io l'ho fatto proprio come ti ho detto.
    Anche io ho messo la session_id che si tramuta in utente_id se fa il login o si registra in occasione del primo acquisto.

    Roby

  9. #9
    tieni tutto in delle sessioni finchè non conclude l'ordine......

    se chiude addio altrimenti li registri!!

  10. #10
    metti la data dell'apertura del carrello..se la data è + vecchia di tot cancelli tutto

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.