Problema con carrello

Bruce5000

Utente Attivo
14 Ott 2007
106
0
0
Salve, ho un problema nella realizzazione del carrello: quando viene scelto un prodotto dal catalogo, nel carrello viene visualizzato solo l'ultimo prodotto della lista a prescindere da quale prodotto viene scelto.

Qualcuno può aiutarmi?

Questo è il codice del carrello:
PHP:
<?php 
session_start(); 
?> 

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>Carrello acquisti</title> 
<link rel="stylesheet" type="text/css" href="css/classi.css"> 
<link rel="stylesheet" type="text/css" href="css/principale.css"> 
</head> 

<body> 
  <div id="contenitore"> 
    <!-- Parte superiore --> 
    <div id="toppage"> 
        <div id="topp"> 
        <div id="titolo"><div style=" font-size:2.5em; color:#FFFFFF; font-weight:bold;"></div></div> 
        </div> 
        <div id="barra"> 
            <div style="position:absolute; left:40px; top:5px; width:840px; text-align:right;" class="tmenu"> 
                <a href="index.php" title="link">Home</a> | <a href="#" title="link">Info</a> | <a href="#" title="link">Contatti</a> 
            </div> 
        </div> 
    </div> 
    <!-- Fine parte superiore --> 
    <!-- Menù di sinistra --> 
    <div id="menusx" class="tmenu"> 
        <div class="indicatore"><div style="position:absolute; top:5px;"><a href="index.php" title="link">Home</a></div></div> 
        <div class="indicatore"><div style="position:absolute; top:5px;"><a href="#" title="link">Articoli</a></div></div> 
        <div class="indicatore"><div style="position:absolute; top:5px;"><a href="images.php" title="link">Foto</a></div></div> 
        <div class="indicatore"><div style="position:absolute; top:5px;"><a href="#" title="link">Links</a></div></div> 
        <div class="indicatore"><div style="position:absolute; top:5px;"><a href="visualizza-news.php" title="link">News</a></div></div> 
        <div class="indicatore"><div style="position:absolute; top:5px;"><a href="catalogo.php" title="link">Catalogo</a></div></div> 
        <div class="indicatore"><div style="position:absolute; top:5px;"><a href="login.php" title="link">Amministrazione</a></div></div> 
    </div>             
    <!-- Fine menù di sinistra --> 
    <!-- Contenuti --> 
    <div id="contenuti" class="ttesto"> 
<div align="right"> 
<script type="text/javascript" src="data-orologio.js"></script> 
</div> 
<h3 align="center">Carrello</h3> 

  <table width="87%" border="1" cellpadding="8"> 
    <tr style="vertical-align: middle"> 
      <td width="30%" style="text-align: center"> 
        <label class="etichetta"> 
        <div align="center">Codice</div> 
        </label>      </td> 
      <td width="30%" style="text-align: center"> 
        <label class="etichetta"> 
        <div align="center">Nome</div> 
        </label>      </td> 
      <td width="40%" style="text-align: center"> 
        <label class="etichetta"> 
        <div align="center">Descrizione</div> 
        </label>      </td> 
              <td width="40%" style="text-align: center"> 
        <label class="etichetta"> 
        <div align="center">Prezzo</div> 
        </label>      </td> 

      </tr></table> 
<?php 
$id = $_GET['id_prodotto']; 
if (!isset($id) OR $id >= 1) { 

    $_SESSION['codice'] .= $_POST['codice']; 
    $_SESSION['nome'] .= $_POST['nome']; 
    $_SESSION['descrizione'] .= $_POST['descrizione']; 
    $_SESSION['prezzo'] .= $_POST['prezzo']; 

echo '<table width="97%" border="0" cellpadding="8">'; 
echo '<tr style="vertical-align: middle">'; 
echo '<td width="20%" style="text-align: center"><div align="center">'; 
echo $_SESSION['codice']; 
echo "</div></td>"; 
echo '<td width="20%" style="text-align: center"><div align="center">'; 
echo $_SESSION['nome']; 
echo "</div></td>"; 
echo '<td width="20%" style="text-align: center"><div align="center">'; 
echo $_SESSION['descrizione']; 
echo "</div></td>"; 
echo '<td width="20%" style="text-align: center"><div align="center">'; 
echo $_SESSION['prezzo']; 
echo "</div></td>"; 
echo "</tr></table>"; 
} else{ 
echo "Il carrello è vuoto!"; 
} 
?> 
    </div> 
    <div id="chiusura"></div> 
    <!-- Fine Contenuti --> 
    <div id="piepag"></div> 
  </div> 

</body> 
</html>
 

jan267

Utente Attivo
6 Mar 2003
1.956
2
38
32
Milano
twitter.com
Prova a vedere $_SESSION['codice'] (ecc) come un array: $_SESSION['codice'][] = $_POST['codice'].
Per visualizzare tutti i prodotti usa un ciclo...
 

jan267

Utente Attivo
6 Mar 2003
1.956
2
38
32
Milano
twitter.com
PHP:
for ($i = 0; $i <= count($_SESSION['codice']) - 1; $i++) {
    // stampi quello che vuoi con $_SESSION['codice'][$i]
    // oppure con $_SESSION['altravariabilearray'][$i]
    // ecc...
}
 

Bruce5000

Utente Attivo
14 Ott 2007
106
0
0
Ho scritto questo codice ma non visualizza nessun articolo nel carrello, ma "Fatal error: [] operator not supported for strings in /membri/corradominnozzi/carrello.php on line 68". Dove sbaglio?

PHP:
<?php

$_SESSION['codice'][] = $_POST['codice']; 
$_SESSION['nome'][] = $_POST['nome']; 
$_SESSION['descrizione'][] = $_POST['descrizione']; 
$_SESSION['prezzo'][] = $_POST['prezzo']; 
for ($i = 0; $i <= count($_SESSION['codice']) - 1; $i++) { 
echo '<table width="97%" border="0" cellpadding="8">';
echo '<tr style="vertical-align: middle">';
echo '<td width="20%" style="text-align: center"><div align="center">';
echo $_SESSION['codice'][$i];
echo "</div></td>";
echo '<td width="20%" style="text-align: center"><div align="center">';
echo $_SESSION['nome'][$i];
echo "</div></td>";
echo '<td width="20%" style="text-align: center"><div align="center">';
echo $_SESSION['descrizione'][$i];
echo "</div></td>";
echo '<td width="20%" style="text-align: center"><div align="center">';
echo $_SESSION['prezzo'][$i];
echo "</div></td>";
echo "</tr></table>";
} 
?>
 

jan267

Utente Attivo
6 Mar 2003
1.956
2
38
32
Milano
twitter.com
Ciao,
mi è venuta un'illuminazione... è una banalità ma potrebbe cambiare qualcosa!
Prova ad aggiungere questa linea all'inizio:
PHP:
$_SESSION['codice'] = array();
Questo anche per nome, descrizione e prezzo.
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Perchè:
PHP:
$_SESSION['codice'][] = $_POST['codice'];
e non
PHP:
$_SESSION['codice'] = $_POST['codice'];
?
 

Bruce5000

Utente Attivo
14 Ott 2007
106
0
0
Ho provato anche in questo modo, ma non visualizza niente nel carrello.
Per favore, qualcuno può aiutarmi? Sto diventando pazzo!
PHP:
<?php
$_SESSION['codice'] = $_POST['codice'];  
$_SESSION['nome'] = $_POST['nome'];  
$_SESSION['descrizione'] = $_POST['descrizione'];  
$_SESSION['prezzo'] = $_POST['prezzo'];  

for ($i = 0; $i <= count($_SESSION['cart']); $i++) {
echo '<table width="97%" border="0" cellpadding="8">'; 
echo '<tr style="vertical-align: middle">'; 
echo '<td width="20%" style="text-align: center"><div align="center">'; 
echo $_SESSION['codice'][$i]; 
echo "</div></td>"; 
echo '<td width="20%" style="text-align: center"><div align="center">'; 
echo $_SESSION['nome'][$i]; 
echo "</div></td>"; 
echo '<td width="20%" style="text-align: center"><div align="center">'; 
echo $_SESSION['descrizione'][$i]; 
echo "</div></td>"; 
echo '<td width="20%" style="text-align: center"><div align="center">'; 
echo $_SESSION['prezzo'][$i]; 
echo "</div></td>"; 
echo "</tr></table>"; 
}

?>