Salve amici spero di risolvere il mio problema .Ho creato da vari sript un modulo ordini con carrello della spesa perfettamente funzionante, i prodotti vengono estratti da un database MySql.
Una volta arrivato all'invio dell'ordine, mi arriva una mail vuota o quantomeno riesco solo a vedere gli ID dei prodotti (1,5,8,5,3 e cosi via)
come posso fare per inviare il carrello della spesa completo di totale?
Vi ringrazio anticipatamente per il vostro supporto
questi i file:
questa è la pagina dove risiede il carrello:
Codice PHP:
?php // Include MySQL class require_once('inc/mysql.class.php'); // Include database connection require_once('inc/global.inc.php'); // Include functions require_once('inc/functions.inc.php'); // Start the session session_start(); // Process actions $cart = $_SESSION['cart']; $action = $_GET['action']; switch ($action) { case 'add': if ($cart) { $cart .= ','.$_GET['id']; } else { $cart = $_GET['id']; } break; case 'delete': if ($cart) { $items = explode(',',$cart); $newcart = ''; foreach ($items as $item) { if ($_GET['id'] != $item) { if ($newcart != '') { $newcart .= ','.$item; } else { $newcart = $item; } } } $cart = $newcart; } break; case 'update': if ($cart) { $newcart = ''; foreach ($_POST as $key=>$value) { if (stristr($key,'qty')) { $id = str_replace('qty','',$key); $items = ($newcart != '') ? explode(',',$newcart) : explode(',',$cart); $newcart = ''; foreach ($items as $item) { if ($id != $item) { if ($newcart != '') { $newcart .= ','.$item; } else { $newcart = $item; } } } for ($i=1;$i<=$value;$i++) { if ($newcart != '') { $newcart .= ','.$id; } else { $newcart = $id; } } } } } $cart = $newcart; break; } $_SESSION['cart'] = $cart; ?>
CREATE TABLE menu ( Id INT(11) NOT NULL PRIMARY KEY, prodotto VARCHAR(255), ingrediente VARCHAR(255), prezzo decimal(10,2) );
il file function.php
Codice PHP:
<?php function writeShoppingCart() { $cart = $_SESSION['cart']; if (!$cart) { return '<p>Non hai nessun prodotto nel carrello</p>'; } else { // Parse the cart session variable $items = explode(',',$cart); $s = (count($items) > 1) ? '/i':''; return '<p>Tu hai <a href="pagina1.php">'.count($items).' prodotto'.$s.' nel tuo carrello della spesa</a></p>'; } }
E' una struttura dati complessa usata in molti linguaggi di programmazione
Mysql
Mysql è un tipo di database
Stristr
stristr è una funzione di PHP, non case sensitive, che restituisce parte di una stringa dalla prima occorrenza di un parametro fino alla fine della stringa stessa.
Str_replace
Str_replace è una funzione di PHP case sensitive che restituisce una stringa, o una matrice, sostituendo il valore di un parametro con tutte le occorrenze contenute nella variabile.
PHP
E' una piattaforma trasversale lato server scripting language utilizzata per la creazione di pagine web dinamiche
Explode
Explode è una funzione di PHP utilizzata per suddividere una stringa.
require_once('inc/mysql.class.php'); // Include database connection require_once('inc/global.inc.php'); // Include functions require_once('inc/functions.inc.php'); // Start the session session_start(); // Process actions
if(@mail($to, $subject, $body, $headers)) { echo "La mail contenente i dettagli dell'ordine è stata inoltrata con successo."; } else { echo "Si sono verificati dei problemi nell'invio della mail."; } ?>
Mysql
Mysql è un tipo di database
PHP
E' una piattaforma trasversale lato server scripting language utilizzata per la creazione di pagine web dinamiche
Mi sa che è meglio che ti studi come funzionano i form con i relativi metodi.
Se non ci sbatti un po' la testa e ti prendi solo degli spezzoni di codice in giro per la rete senza capire come e perchè funzionano rischi di non saltarci più fuori.