• Lunes 23 de Diciembre de 2024, 14:39

Autor Tema:  Se pisa variable de sesion  (Leído 1435 veces)

sergio2009

  • Nuevo Miembro
  • *
  • Mensajes: 2
  • Nacionalidad: ar
    • Ver Perfil
Se pisa variable de sesion
« en: Lunes 31 de Agosto de 2009, 06:56 »
0
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.

DriverOp

  • Miembro MUY activo
  • ***
  • Mensajes: 201
    • Ver Perfil
Re: Se pisa variable de sesion
« Respuesta #1 en: Lunes 31 de Agosto de 2009, 16:12 »
0
Pon unas cuantas llamadas a
[php:15c1gif0]
  1.  
  2. var_dump($_SESSION);
  3.  
[/php:15c1gif0]
En lugares clave para que sepas qué está pasando con las sesiones.

shadow_rev

  • Miembro MUY activo
  • ***
  • Mensajes: 397
  • Nacionalidad: co
  • Un SPARTAN no muere en combate
    • Ver Perfil
    • http://shadowrev.blogspot.com
Re: Se pisa variable de sesion
« Respuesta #2 en: Lunes 31 de Agosto de 2009, 16:44 »
0
Aquí veo algo raro
Código: PHP
  1. if(!isset($SESSION['productos']))
  2.  
Pregunta capciosa: No debería ser $_SESSION (con el _ entre el $ y SESSION) ??

:suerte:
Volará quien le ponga alas a sus sueños (Candidate for goddess)
Si el mal existe en este mundo, reside en el corazón de la humanidad (Edward D. Morrison - Tales of Phantasia)
Lo único que puedes cambiar del pasado, es lo que sientes por él en el presente (Lockon Stratos - Mobile Suit Gundam 00)
Ingeniero de Sistemas

sergio2009

  • Nuevo Miembro
  • *
  • Mensajes: 2
  • Nacionalidad: ar
    • Ver Perfil
Re: Se pisa variable de sesion
« Respuesta #3 en: Lunes 31 de Agosto de 2009, 17:00 »
0
Efectivamente era lo del guión bajo. Un detalle pero importante jeje. Gracias a ambos por sus respuestas.  ^_^