Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    inviare il carrello via email o salvarlo in un database?

    Ciao!

    Continuo gli esperimenti sul mio carrello con le sessioni. Ora sono a questo punto:

    carrello.php
    Codice PHP:
    <?php
    session_start
    ();
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Carrello</title>
    <style type="text/css">
    button {
    border: 1px solid #cccccc;
    background: #ffffff;
    }

    </style>
    </head>

    <body>
    <?php
    if (isset($_POST['prodotto'])) {
    $prodotto $_POST['prodotto'];
    switch (
    $prodotto){
    case 
    'prod1':
    $_SESSION['cart']['1']['nome'] = 'zucca';
    $_SESSION['cart']['1']['prezzo'] = '40.00';
    $_SESSION['cart']['1']['quantita']=$_SESSION['cart']['1']['quantita']+1;
    break;
    case 
    'prod2':
    $_SESSION['cart']['2']['nome'] = 'pipistrelli';
    $_SESSION['cart']['2']['prezzo'] = '60.00';
    $_SESSION['cart']['2']['quantita']=$_SESSION['cart']['2']['quantita']+1;
    break;
    case 
    'prod3':
    $_SESSION['cart']['3']['nome'] = 'albero';
    $_SESSION['cart']['3']['prezzo'] = '20.00';
    $_SESSION['cart']['3']['quantita']=$_SESSION['cart']['3']['quantita']+1;
    break;
    }
    }
    ?>

    <form action="carrello.php" method="post">
    <button type="submit" name="prodotto" value="prod1">[img]22402451.jpg[/img]</button>
    <button type="submit" name="prodotto" value="prod2">[img]20852938.jpg[/img]
    </button>
    <button type="submit" name="prodotto" value="prod3">[img]22402931.jpg[/img] </button>
    </form>



    </p>


    </p>
    <?php
    if (isset($_SESSION['cart'])) {
    foreach ( 
    $_SESSION['cart'] as $key=>$value )
    {
         
    $prezzo=$prezzo +(($_SESSION['cart'][$key]['quantita'])*($_SESSION['cart'][$key]['prezzo']));
         
    $num=$num+$_SESSION['cart'][$key]['quantita'];
         
    //$prezzo_tot=$prezzo_tot+$_SESSION['cart'][$key]['prezzo']; 
    }
    echo 
    "Prodotti in carrello: $num 
    "
    ;
    echo 
    "Costo totale:"$prezzo.".00 
    "
    ;
    }
    ?>


    prodotti nel carrello:

    <?php
    if (isset($_SESSION['cart'])) {
    foreach ( 
    $_SESSION['cart'] as $key=>$value )
           {
             
              echo (
    "Nome: " $_SESSION['cart'][$key]['nome'] . "
    "
                 
    "Prezzo: " $_SESSION['cart'][$key]['prezzo'] . "
    "
                 
    "Quantità: " $_SESSION['cart'][$key]['quantita'] . "
    "
                 
    "ID: "$key"
    "
    ) ;
           }
    echo (
    "<a href=\"ordine.php\">Invia modulo d'ordine</a>");
    }

    ?>
    </p>
    </body>
    </html>
    ordine.php
    Codice PHP:
    <?php
    session_start
    ();
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Carrello</title>
    <style type="text/css">
    button {
    border: 1px solid #cccccc;
    background: #ffffff;
    }

    </style>
    </head>

    <body>

    <?php
    if (!isset($_SESSION['cart'])) {
    echo (
    "Impossibile proseguire. Si &egrave; verificato un problema con le sessioni.");
    exit;
    } else {
    foreach ( 
    $_SESSION['cart'] as $key=>$value )
    {
         
    $prezzo=$prezzo +(($_SESSION['cart'][$key]['quantita'])*($_SESSION['cart'][$key]['prezzo']));
          
    }
    echo (
    "<h1>Modulo d'ordine</h1><table cellspacing=\"0\" cellpadding=\"2\" border=\"1\"><tr><td>[b]Cod. Prodotto[/b]</td><td>[b]Descrizione[/b]</td><td>[b]Prezzo Unitario[/b]</td><td>[b]Quantit&agrave;[/b]</td><td>[b]Totale[/b]</td></tr>");
    foreach ( 
    $_SESSION['cart'] as $key=>$value )
           {echo (
    "<tr><td>".$key"</td>"
                    
    "<td>" $_SESSION['cart'][$key]['nome'] . "</td>"
                 
    "<td> " $_SESSION['cart'][$key]['prezzo'] . "</td>"
                 
    "<td> " $_SESSION['cart'][$key]['quantita'] . "</td>"
                 
    "<td> " . ($_SESSION['cart'][$key]['prezzo'] * $_SESSION['cart'][$key]['quantita']). "</td></tr>" ) ;
           }

    echo (
    "<tr><td colspan=\"4\" align=\"right\">TOTALE</td><td>".$prezzo."</td></tr></table>");
    }

    ?>
    </p>
    </body>
    </html>
    ora sono a questo punto.. ho stampato il mio bel modulo a video... ma.. come faccio ad inviarlo via mail? con un post? (so usare sia i post che mail(), ma non so da dove cominciare!)
    dovrei fare degli input nascosti? qualche consiglio...?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Se l'ordine è confermato, dovresti avere una tabella con l'id dell'ordine l'id del cliente e le informazioni che ritieni necessarie (un domani un cliente potrebbe voler dare un'occhiatina agli acquisti fatti in passato).

    Per quanto riguarda l'invio dell'ordine: se vuoi farlo via email (ottimo), ti consiglio di scaricare la classe phpmailer (la trovi su sourceforge.net) che consente di inviare molto semplicemente email in formato HTML. Alla fine, settato l'header html, il contenuto dell'email ce l'hai già, visto che ti basta ricopiare nel body dell'email l'ordine stesso così come lo stampi a video. Più parole che righe di codice: trovi alcuni esempi di email in formato html inclusi nella documentazione della classe phpmailer.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    domandina: come faccio ad assegnare un id univoco all'ordine? dovrei memorizzarlo nel database tra l'altro..

  4. #4
    sì ma la mia domanda è: come fare per assegnare un id univoco all'ordine? semplicemente quando l'utente conferma l'ordine, oltre ad inviare la mail, inserisco l'ordine nel database?

    tipo:
    Codice PHP:
    <?php
    session_start
    ();
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Carrello</title>
    <style type="text/css">
    button {
    border: 1px solid #cccccc;
    background: #ffffff;
    }

    </style>
    </head>
    <body>
    <?php
    include ("config.inc.php");
    if (!isset(
    $_SESSION['cart'])) {
    echo (
    "Impossibile proseguire. Si &egrave; verificato un problema con le sessioni.");
    exit;
    } else {
    foreach ( 
    $_SESSION['cart'] as $key=>$value )
    {
         
    $prezzo=$prezzo +(($_SESSION['cart'][$key]['quantita'])*($_SESSION['cart'][$key]['prezzo']));
          
    }
    echo (
    "<h1>Modulo d'ordine</h1><table cellspacing=\"0\" cellpadding=\"2\" border=\"1\"><tr><td>[b]Cod. Prodotto[/b]</td><td>[b]Descrizione[/b]</td><td>[b]Prezzo Unitario[/b]</td><td>[b]Quantit&agrave;[/b]</td><td>[b]Totale[/b]</td></tr>");
    foreach ( 
    $_SESSION['cart'] as $key=>$value )
           {echo (
    "<tr><td>".$key"</td>"
                    
    "<td>" $_SESSION['cart'][$key]['nome'] . "</td>"
                 
    "<td> " $_SESSION['cart'][$key]['prezzo'] . "</td>"
                 
    "<td> " $_SESSION['cart'][$key]['quantita'] . "</td>"
                 
    "<td> " . ($_SESSION['cart'][$key]['prezzo'] * $_SESSION['cart'][$key]['quantita']). ".00</td></tr>" ) ;
           }

    echo (
    "<tr><td colspan=\"4\" align=\"right\">TOTALE</td><td>".$prezzo.".00</td></tr></table>");
    echo (
    "

    <a href=\"ordine.php?modulo=invia\">Invia modulo d'ordine</a></p>"
    );

    if (isset(
    $_GET['modulo']) && ($_GET['modulo']=='invia')) {
    $email_admin "ordini@miosito.it";

    $email "tua@email.it";

    $oggetto="Nuovo acquisto dal Nome Sito - Numero transazione";


    $testo ="Ordine dal sito\n\n";

      foreach (
    $_SESSION['cart'] as $key=>$value) {

        
    $testo.=" Nome: ".$_SESSION['cart'][$key]['nome']."\n";

        
    $testo.=" Prezzo ".$_SESSION['cart'][$key]['prezzo']."\n";

        
    $testo.=" Quantità ".$_SESSION['cart'][$key]['quantita']."\n";

        
    $testo.=" ID: ".$key."\n";

        
    $testo.="\n\n";

      }

    $db mysql_connect($db_host$db_user$db_password) or die("Connessione non riuscita: " mysql_error());

    $select mysql_select_db($db_name$db) or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    $date time();

    $query "INSERT INTO ordini (data, testo, id_user) VALUES ('$date', '$testo', '$id_user')";
        
    $sql mysql_query($query$db);
        
    mysql_close ($db);

    mail($email,$oggetto,$testo,"From: ".$emailadmin."");
    echo 
    "Ordine inoltrato con successo. Entro breve tempo sarai contattato per la conferma definitiva.";

    }

    }


    ?>
    </p>
    </body>
    </html>
    ovviamente la variabile $id_user in questo script non esiste, ma nella realtà sarà una variabile recuperata tramite un pannello di login dalla tabella utenti del database.

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.