• User Newbie

    problemi carrello php

    Ciao a tutti ho un problema semplice semplice al quale però non riesco a trovare soluzione...
    sto realizzando un sito e-commerce con php e mysql..
    Per la gestione del carrello ho preferito non appoggiarmi al db e mantenere tutti i dati in un vettore in sessione...
    Il mio problema è questo:
    per inserire l'articolo del carrello utilizzo il solito pulsante con associata una variabile GET per l'id del prodotto. L'inserimento avviene correttamente, ma durante la navigazione successiva se si naviga utilizzando le frecce del browser (avanti,indietro) c'è il rischio che si richiami la pagina del carrello e che gli vengano ripassati i parametri dell'acquisto (che rimangono in cache)...
    insomma se acquisto un prodotto e poi cambio pagina se faccio "indietro" lo riacquisto...

    Qualcuno sa come aiutarmi? come posso gestire le variabili $_GET in modo che nin vengano rimandati i dati se non quando è l'utente a cliccare sul link?

    Spero di essere stato chiaro un grazie anticipato


  • User Attivo

    Ciao edo81 e benvenuto

    un buon modo per risolvere il tuo problema è quello di usare una pagina "di appoggio". Mi spiego meglio: quando clicchi su "aggiungi al carrello" passi il get a una pagina che non visualizza niente ma inserisci l'id nella variabile di sessione (cioè di fatto nel carrello), poi fai un redirect (header("Location: dest")) a una pagina che visualizza il carrello.
    In questo modo se dopo cambi pagina e fai "indietro" torni alla pagina di visualizzazione del carrello e non a quella di inserimento

    Precesiso che anche se torni a fare indietro una seconda volta torni alla pagina del prodotto e non a quella dell'inserimento quindi continua a funzionare.

    :ciauz:


  • User Newbie

    ti ringrazio per la risposta... provo e poi ti dico se è tutto ok.
    Avevo già provato a creare una pagina di appoggio, ma facendo "indietro" dalla pagina del carrello si rieffettuava la transazione, però utilizzavo una window.open per caricare la pagina


  • User Newbie

    ok funziona perfettamente grazie ancora


  • User Attivo

    figurati,

    ciao


  • User Attivo

    @riky78 said:

    Ciao edo81 e benvenuto

    un buon modo per risolvere il tuo problema è quello di usare una pagina "di appoggio". Mi spiego meglio: quando clicchi su "aggiungi al carrello" passi il get a una pagina che non visualizza niente ma inserisci l'id nella variabile di sessione (cioè di fatto nel carrello), poi fai un redirect (header("Location: dest")) a una pagina che visualizza il carrello.
    :ciauz:

    invece è possibile un redirect alla pagina da cui si era partiti, invece che la pagina dei risultati del carrello?


  • Moderatore

    Sì.

    Metti:
    header("Location: pagina_di_partenza");

    :ciauz:


  • User Newbie

    ciao, io sto iniziando ora con php, sto usando il carrello fornito con paypal, ma vorrei averne uno completamente gestito da me in php... non so quasi nulla, quindi stò cercando qualcuno tanto gentile da passarmi un micro sito di esempio funzionante, da analizzare passo passo nel codice, con tutte le pagine grazie image se c'é qualcuno così gentile.. [EMAIL="[email protected]"][email protected][/EMAIL]


  • Super User

    Ciao Rix86,
    ho spostato i messaggi di risposta alla tua domanda in un nuovo thread nella sezione Cms World GT
    ora puoi continuare qui 😉
    ciao!


  • User Attivo

    @lilo said:

    invece è possibile un redirect alla pagina da cui si era partiti, invece che la pagina dei risultati del carrello?
    anche se è passato molto tempo posto una soluzione che mi sembra migliore per questo problema aoprattutto per i posteri....

    header("location:".$_SERVER['HTTP_REFERER']);
    così da qualunque pagina venga attivato il link compra si viene rimandati indietro..