Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Sessiones y Objetos

Estas en el tema de Sessiones y Objetos en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola gente, a ver si alguien me puede ayudar: Estoy queriendo armar un carrito simple, y el problema que tengo es que si uso un ...
  #1 (permalink)  
Antiguo 18/06/2006, 16:38
 
Fecha de Ingreso: junio-2006
Mensajes: 2
Antigüedad: 17 años, 10 meses
Puntos: 0
Sessiones y Objetos

Hola gente, 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.

o si bien voy a otro archivo php tampoco me conserva los valores a pesar de hacer el include de lib_carrito y el new del objeto con el mismo nombre.

Gracias

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']);

?>
<html>
<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>
  #2 (permalink)  
Antiguo 18/06/2006, 16:44
 
Fecha de Ingreso: junio-2006
Mensajes: 2
Antigüedad: 17 años, 10 meses
Puntos: 0
Ya esta

Pude arreglar algo asi:
instancie la clase y despues cree el session_start()
Pero la primera vez que ejecuto me da error.

Saludos

Última edición por tincho80; 18/06/2006 a las 17:10
  #3 (permalink)  
Antiguo 19/06/2006, 19:14
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
qué error te da?
  #4 (permalink)  
Antiguo 19/06/2006, 19:53
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
el error esta aca
carrito.php

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

osea el error esta en q cada vez q cargar la pagina vuelve a crear un objeto carrito en la misma variable, entonces lo q debes hacer es hacer un controlcito previo

if(!isset($_SESSION['cart']))
$_SESSION['cart']=new carrito();

osea, cuando el carrito no este creado, q lo cree, pero si ya esta q no lo vuelva a crear pq sino perdemos nuestros datos ;)
saludos espero te sirva
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:55.