PHP5 Carrito de Compras

tincho80
18 de Junio del 2006
Hola a ver si alguien me puede ayudar:
Estoy queriendo armar un carrito simple, y el problema que tengo es que si uso un FORM no me conserva los valores del objeto. Paso los 2 archivos para que quede claro.

lib_carrito.php

class carrito
{
public $items;

public function agregar_item($id, $cant){
$this->items[$id] += $cant;
}

public function retirar_item($id, $cant) {
if ($this->items[$id] > $cant) {
$this->items[$id] -= $cant;
return true;
} elseif ($this->items[$id] == $cant) {
unset($this->items[$id]);
return true;
} else {
return false;
}
}

public function imprimir_carrito(){
foreach($this->items as $id => $cant){
echo $id . ' ' . $cant . '<br>';
}
}

}
?>

carrito.php

<?
session_start();
include('lib_carrito.php');
$_SESSION['cart'] = new carrito();

if ($_POST['ok'] == 1)
$_SESSION['cart']->agregar_item($_POST['id'], $_POST['cant']);

?>
<!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 sin t&iacute;tulo</title>
</head>
<body>
<h1 align="center">CARRITO</h1>
<p align="center">
<? $_SESSION['cart']->imprimir_carrito(); ?>
</p>
<form id="form1" name="form1" method="post" action="">
ID:
<input name="id" type="text" id="id" />
CANTIDAD:
<input name="cant" type="text" id="cant" />
<input name="ok" type="hidden" value="1" />
<input type="submit" name="Submit" value="Agregar" />
</form>
<a href="ver.php">ver carrito</a>
</body>
</html>