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.