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

    Carrello: vettore o tabella ??

    Ciao a tutti
    Devo creare un sito di e-commerce un po particolare: è una pasticceria in cui si possono visionare e prenotare (non si possono acquistare, il cliente li ritira in negozio e li paga lì) prodotti senza essere registrati, chiunque navigando si "crea il suo carrello" e se vuol ordinare gli vengono richiesti i dati anagrafici e bla bla bla... il pasticcere lo richiamera poi x la conferma dell'ordine.
    Il mio problema è questo: come creare il carrello?? meglio un vettore in sessione che xo non ho mai provato a implementare (la mia conoscenza in php è abb. scarsa) oppure usare una tabella temporanea?
    Se creo una tabella x il carrello e due utenti stanno facendo acquisti contemporaneamente, i prodotti confluiscono insieme nella stessa tabella..come faccio poi a distinguere i prodotti dell'utente A da quelli dell'untente B? (senza avere un nome utente)..posso usare una specie di id_sessione???
    Qualcuno mi sa proprorre anke qualche altra soluzione ?? o qlc sistema gia esistente da utilizzare??

    Ringrazio anticipatamente
    "Vivi come se dovessi morire domani, pensa come se nn dovessi morire mai"

    "Solo i coraggiosi arrivano là dove neanche gli angeli riescono a volare"

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    io userei proprio il session_id() come chiave di riferimento delle righe d'ordine del visitatore, e una tabella per le corrispondenze session_id()->anagrafica dell' acquirente.

    .. ovviamente la scrittura delle righe avviene a conferma di prenotazione.
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3

    session_id

    Grazie mille dottwatson, cerchero qlc info su session_id, xcio pensi che sia meglio usare una tabella piuttosto che un vettore??
    Cmq mi sono dimenticato di scrivere nel mio post che l'ordine viene poi inviato x mail e non salvato in un db.. xcio alla fine l'anagrafica e il contenuto del carrello non viene salvato e il session_id lo uso solo x distinguere gli utente nella tabella che rappresenta il carrello (il che dovrebbe essere + facilemente gestibile).
    "Vivi come se dovessi morire domani, pensa come se nn dovessi morire mai"

    "Solo i coraggiosi arrivano là dove neanche gli angeli riescono a volare"

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    mmhhhh... e se sfiga qualcosa dovesse andare storto nell' invio o ricezione dell'email? come lo recuperi l'ordine? son soldi :P

    ti consiglio di salvarle quelle righe, poi al pasticcere dai solo la possibilità di visionare gli ultimo 10 ordini, senza cancellare o altro ancora. Una semplice routine cancellerà ogni tot gli ordini con data troppo vecchia. Questo prevede ovviamente un campo DATE nel db, ma questo è il meno
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5

    in effetti..

    ...so che la soluzione di spedire l'ordine x mail lascia un po a desiderare, ma è cio che il committente ci ha richiesto!!!
    Tra l'altro non so neanche esattamente come fare a spedire la mail..cioe basta usare il mailto:blabla nella form dell'ordine??
    "Vivi come se dovessi morire domani, pensa come se nn dovessi morire mai"

    "Solo i coraggiosi arrivano là dove neanche gli angeli riescono a volare"

  6. #6
    Sto iniziando a creare il carrello,volevo fare qlc prova con la session_id e ho notat subito una cosa, quando faccio:
    session_start();
    print session_id();
    e facci oil refresh della pagina cambia sempre!!!se invece non metto session_start() non mi stampa nessun valore.
    Come faccio allora a usare il session_id x identificare un utente e i suoi acquisti??

    Grazie mille
    Ciao
    "Vivi come se dovessi morire domani, pensa come se nn dovessi morire mai"

    "Solo i coraggiosi arrivano là dove neanche gli angeli riescono a volare"

  7. #7
    Ho provato anke cosi ma, ad ogni refresh, cambia il valore:

    session_start();
    if(!session_is_registered("sid"))
    {
    print "sessione nuova";
    $_SESSION["sid"]=session_id();
    }

    $sidl=$_SESSION["sid"];
    print $sidl;
    "Vivi come se dovessi morire domani, pensa come se nn dovessi morire mai"

    "Solo i coraggiosi arrivano là dove neanche gli angeli riescono a volare"

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Mi risulta difficile credere che ti cambi session_id ai vari cambi pagina:

    Prova queste due:
    index.php
    codice:
    <?php
      session_start();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Documento senza titolo</title>
    </head>
    
    <body>
      
    
    
        Session ID: <span style="color:ff0000:"><?php echo(session_id()); ?></span>
      </p>
      
    
    
        Cambia pagina
      </p>
    </body>
    </html>
    pagina2.php
    codice:
    <?php
      session_start();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Documento senza titolo</title>
    </head>
    
    <body>
      
    
    
        Session ID: <span style="color:ff0000:"><?php echo(session_id()); ?></span>
      </p>
      
    
    
        Cambia pagina
      </p>
    </body>
    </html>
    Comunque quel che ti suggerisce dottwatson è da implementare: meglio salvare a database che inviare via email (non che non lo debba fare, ma ti conviene salvare l'ordine in database per ogni evenienza, e quindi inviare l'email).
    Saluti.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9

    uhm..

    Ho provato proprio ora il codice che mi hai scritto e infatti NON cambia.. farò un paio di prove con le mie pagine e poi v farò vedere.
    Grazie mille x l'aiuto
    "Vivi come se dovessi morire domani, pensa come se nn dovessi morire mai"

    "Solo i coraggiosi arrivano là dove neanche gli angeli riescono a volare"

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    comunque, se proprio devi fare quel test su "sid" (anche se non serve, secondo me)...
    codice:
    if (!isset($_SESSION['sid'])) { 
      $_SESSION['sid'] = session_id();
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.