Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2017
    Messaggi
    56

    carrello degli acquisti con i cookie

    salve come posso realizzare un carrello degli acquisti tramite i cookie?

    i dati li andrei a prendere all'interno del database nelle tabelle:

    prodotti(ID, nome, descrizione, quantita, percorso_foto)
    prezzi(codp, valore, descrizione, ID)

    utenti(codu, email, nomeutente, password, tipo_utente)

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    I cookie hanno una dimensione massima, 4Kb compresi nome, expiration date, dominio ecc... quindi i dati che ci puoi salvare dentro sono molto limitati, ragion per cui non puoi pensare di metterci tutti i dati di ogni prodotto scelto.
    Al limite io ci salverei solo gli id dei prodotti scelti per poi andare a recuperare dal db gli altri dati quando viene richiesta la visualizzazione del carrello.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2017
    Messaggi
    56
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Al limite io ci salverei solo gli id dei prodotti scelti per poi andare a recuperare dal db gli altri dati quando viene richiesta la visualizzazione del carrello.
    si sono d'accordo, quindi come posso procedere? cioè un solo cookie dove memorizzo solo l'id del prodotto? Se riesci fammi un esempio. Grazie mille

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Sei in grado di creare, modificare e leggere un cookie?
    Quando l'utente sceglie un prodotto vedi se il cookie del carrello esiste, se esiste aggiungi l'id del prodotto, se non esiste lo crei ed inserisci l'id.
    Il consiglio è quello di inserire gli id in modi che sia facile leggerli in seguito, trattandosi di dati semplici potrebbe bastare dividerli con una virgola (4, 54, 189...) poi quando li recuperi usi la funzione explode() sulla stringa ed hai tutti gli id in un array. In alternativa puoi salvarli in formato JSON che permette di salvare in modo semplice strutture più complesse.

    Quando l'utente richiede la visualizzazione del carrello leggi il contenuto del cookie, recuperi gli id a seconda di come li hai salvati e li usi per recuperare i dati dei prodotti che visualizzerai con un ciclo sul risultato della query.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2017
    Messaggi
    56
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Sei in grado di creare, modificare e leggere un cookie?
    Quando l'utente sceglie un prodotto vedi se il cookie del carrello esiste, se esiste aggiungi l'id del prodotto, se non esiste lo crei ed inserisci l'id.
    Il consiglio è quello di inserire gli id in modi che sia facile leggerli in seguito, trattandosi di dati semplici potrebbe bastare dividerli con una virgola (4, 54, 189...) poi quando li recuperi usi la funzione explode() sulla stringa ed hai tutti gli id in un array. In alternativa puoi salvarli in formato JSON che permette di salvare in modo semplice strutture più complesse.

    Quando l'utente richiede la visualizzazione del carrello leggi il contenuto del cookie, recuperi gli id a seconda di come li hai salvati e li usi per recuperare i dati dei prodotti che visualizzerai con un ciclo sul risultato della query.
    codice:
    if (!isset($_COOKIE['idprodotti'])){
        $idprodotto= $_POST['ID']; //recupero l'id del prodotto
        setcookie('idprodotti', $idprodotto, time()+3600); //questo cookie scade dopo 3600 secondi ovvero 1 ora
    }
    Qualcosa del genere per aggiungere al carrello va bene? Non ho capito però come fare quando il cookie è già creato

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Così inserisci il primo id, se nel cookie già ce n'erano altri li sovrascrivi.
    Se il cookie esiste devi prendere la stringa contenente gli id, concatenarci il nuovo id e risalvare la stringa completa nel cookie.

    Stai realizzando un vero e-commerce oppure è solo un esercizio per imparare? Nel secondo caso ok, nel primo invece ti consiglio vivamente di fermarti perché realizzare un e-commerce è una cosa MOLTO complessa e dimostri di non avere assolutamente le conoscenze necessarie. Su un e-commerce girano soldi, se commetti errori rischi di passare i guai veri.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2017
    Messaggi
    56
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Cos� inserisci il primo id, se nel cookie gi� ce n'erano altri li sovrascrivi.
    Se il cookie esiste devi prendere la stringa contenente gli id, concatenarci il nuovo id e risalvare la stringa completa nel cookie.

    Stai realizzando un vero e-commerce oppure � solo un esercizio per imparare? Nel secondo caso ok, nel primo invece ti consiglio vivamente di fermarti perch� realizzare un e-commerce � una cosa MOLTO complessa e dimostri di non avere assolutamente le conoscenze necessarie. Su un e-commerce girano soldi, se commetti errori rischi di passare i guai veri.
    puoi dirmi allora come andrebbe modificato quel codice?
    Come ho gi� spiegato in altri post (non so se li hai seguiti) � un progetto che porter� agli esami di stato, inizialmente i dati del carrello li ho messi tutti in un apposita tabella, ma la prof ha detto che il carrello lo devo fare con i cookie, ecco perch� ho chiesto aiuto qua.
    comunque se ti va puoi dare un occhiata al progetto in questione, magari puoi darmi qualche consiglio in generale su come migliorarlo. Questo � il link: http://ferrrigno2018.altervista.org/

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2017
    Messaggi
    56
    ho provato a fare cosi:
    codice:
    //questo script aggiunge prodotti al carrello
        echo 'account autorizzato';
        if(isset($_POST['IDprodotto'])&&isset($_POST['quantita']))
        {
            $tipoaccount= @$_SESSION['tipoaccount'];
            $IDprod= $_POST['IDprodotto'];
            $qta= $_POST['quantita'];
            echo 'ID PRODOTTO: '.$IDprod.'</br>';
            echo 'QUANTITA PRODOTTO: '.$qta.'</br>';
            echo 'TIPO DI UTENTE: '.$tipoaccount.'</br>';
    
    
            $stringa=$IDprod."|".$qta."|".$tipoaccount; 
            //$stringa=$IDprod.”|”.$qta.”|”.$tipoaccount;
            setcookie("acquisto", $stringa, time()+360000); 
        }
    codice:
        
    //questo script vede i prodotti messi nel carrello
    if(isset($_COOKIE['acquisto'])) 
        {
            list($IDprod,$qta,$tipoaccount)=explode("|",$_COOKIE["acquisto"]);//[3]);
            echo 'ID PRODOTTO: '.$IDprod.'</br>';
            echo 'QUANTITA PRODOTTO: '.$qta.'</br>';
            echo 'TIPO DI UTENTE: '.$tipoaccount.'</br>';
        }
    
    
        else echo 'cookie non settato';
    vedo sempre solo l'ultimo elemento messo nel carrello, come posso modificare?

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Vedi sempre e solo l'ultimo perché il cookie non lo modifichi, lo sovrascrivi ogni volta con l'ultimo articolo selezionato.
    Prima di salvare il cookie devi verificare se già esiste, se esiste prendi il suo contenuto (attualmente una stringa), ci aggiungi il nuovo articolo e risalvi tutto.

    Attualmente salvi 3 dati per il prodotto scelto: id, quantità e tipo utente (a che serve quest'ultimo dato visto che l'utente è sempre lo stesso?) e li dividi con un pipe |, ora se aggiungi un nuovo prodotto? Hai 2 strade, usi un nuovo separatore, tipo la virgola, per distinguerlo dal pipe e continuare ad usare explode (virgola divide i prodotti, pipe divide i dati di un prodotto), oppure più elegantemente e praticamente passi ad un array JSON che ti permette di salvare strutture complesse.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2017
    Messaggi
    56
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Attualmente salvi 3 dati per il prodotto scelto: id, quantità e tipo utente (a che serve quest'ultimo dato visto che l'utente è sempre lo stesso?)
    Codice PHP:
    $tipoaccount= @$_SESSION['tipoaccount']; 
    mi serve per controllare il tipo di utente connesso, ovvero se esso e un rivenditore si va a prendere il rispettivo prezzo per i prodotto e così via..
    Codice PHP:
    $qta$_POST['quantita']; 
    ho aggiunto anche questo perche' rappresenta la quantita' di pezzi per quel prodotto che si vogliono inserire nel carrello

    per il resto ho capito cosa intendi che devo fare prima il controllo se il cookie è già settato, ho quindi modificato così il codice:
    codice:
     
    if(!isset($_COOKIE['acquisto'])) 
    {
        if(isset($_POST['IDprodotto'])&&isset($_POST['quantita']))
        {
            $tipoaccount= @$_SESSION['tipoaccount'];
            $IDprod= $_POST['IDprodotto'];
            $qta= $_POST['quantita'];
            echo 'ID PRODOTTO: '.$IDprod.'</br>';
            echo 'QUANTITA PRODOTTO: '.$qta.'</br>';
            echo 'TIPO DI UTENTE: '.$tipoaccount.'</br>';
    
    
            $stringa=$IDprod."|".$qta."|".$tipoaccount; 
            setcookie("acquisto", $stringa, time()+360000); 
        }
    }
    
    
    else {
        //accoda un nuovo prodotto
    }
    solo che non riesco a capire come devo tradurre quel blocco else per accodare un nuovo prodotto.

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.