SoloCodigo
		Programación Web y Scripting => PHP => Mensaje iniciado por: sergio2009 en Lunes 31 de Agosto de 2009, 06:56
		
			
			- 
				Hola, soy principiante en PHP, y estoy creando un carrito de compras muy básico.
 
 Tengo un "index.php", donde hago un include_once que crea la variable de sesión:
 include_once('carrito_include.php');
 include('carrito_ver.php');
 También tengo un link para agregar un producto:
 <A HREF="carrito_agregar.php?producto=0120">Agregar al carrito</A>
 
 
 En "carrito_include.php" creo la variable de sesión (si es que no existe):
 <?php
 session_start();
 if(!isset($SESSION['productos']))
 {
 $_SESSION['productos'] = array();
 }
 else
 {
 echo "Ya está creada.<br>";
 }
 ?>
 
 En "carrito_ver.php" hago el include_once y muestro el estado del carrito:
 <?php
 include_once('carrito_include.php');
 $cantidad = count($_SESSION['productos']);
 if($cantidad > 0)
 {
 ?>
 Hay <B><?=$cantidad;?></B> productos(s) en su carrito.<BR>
 <A href="carrito_checkout.php">Terminar la compra</A> |
 <A href="carrito_vaciar.php">Vaciar</A><BR>
 <?
 }
 else
 {
 ?>
 Su carrito está vacío.<BR>
 <BR>
 <?
 }
 ?>
 
 Finalmente en "carrito_agregar", agrego el producto y vuelvo al index con el comando "header":
 <?php
 include_once('carrito_include.php');
 $destino = $_SERVER['HTTP_REFERER'];
 if($destino != "")
 {
 $producto_nuevo = $_GET['producto'];
 $cantidad_productos = count($_SESSION['productos']);
 $_SESSION['productos'][$cantidad_productos] = $producto_nuevo;
 header('Location:' . $destino);
 }
 else
 {
 echo "Error de llamada al script.";
 }
 ?>
 
 El problema es que cada vez que agrego un item y "vuelvo" al index, se muestra que el carrito está vacío (esto es parte de la llamada que hago en index a "carrito_ver.php").
 Me da la sensación que al "volver" al index está creando nuevamente la variable de sesión. ¿Puede ser que sea así? Si alguien me ayuda se lo agradecería mucho.
- 
				Pon unas cuantas llamadas a
 [php:15c1gif0]-  
- var_dump (http://www.php.net/var_dump)($_SESSION);
-  
 
 En lugares clave para que sepas qué está pasando con las sesiones.
- 
				Aquí veo algo raro
 - if(!isset($SESSION['productos'])) 
-   
 
 
 :suerte:
- 
				Efectivamente era lo del guión bajo. Un detalle pero importante jeje. Gracias a ambos por sus respuestas.  ^_^