Hola
Después de visitar los foros correspondientes y no encontrar solución al tema,( aunque hay algún foro que trata el tema sin solucionarlo) , quería plantear mi problema con las sesiones en los navegadores citados. Tengo el siguiente codigo en el archivo:
pedir.php
Código:
//obtengo referencia del articulo
$ref = $_GET['articulo'];
//inicializo comprobando si el carrito está vacio o no, e incremento las unidades
if (empty($_SESSION['carrito'][$ref]))
$unidades = 1;
else
$unidades = $_SESSION['carrito'][$ref] + 1;
$_SESSION['carrito'][$ref] = $unidades;
$ref;
$unidades;
// Redirigimos a la tienda...
$tienda = dirname("http://" . $_SERVER['SERVER_NAME'] .
$_SERVER['SCRIPT_NAME']) .
'/tienda.php';
header("Location: $tienda");
A este codigo accedo desde esta linea
Código:
echo "<a href='#' onclick='javascript:pedido( \"".$ID_articulo."\", \"".$nombre_art."\")' title='Añade a pedido' >Me lo pido</a>";
que abre una ventana modal mediante la función javascript "pedido(ID_articulo,nombre_art)) y que dirige a pedir.php de la siguiente forma
Código:
function pedido(ID_art,art){
$.modal("<iframe scrolling='no' width=450 src=pedir.php?ID_art="+ID_art+"+&art="+art+" ></iframe>",{
minHeight:170,
minWidth: 320,
autoResize: true,
onOpen: function (dialog) {
dialog.overlay.fadeIn('fast', function () {
dialog.data.hide();
dialog.container.fadeIn('fast', function () {
dialog.data.slideDown('fast');
});
});
},
onClose: function (dialog) {
dialog.data.fadeOut('fast', function () {
dialog.container.hide('fast', function () {
$.modal.close();
});
});
}
});
}
El problema es que en firefox si lo hace bien pero en los demás navegadores no. Resulta que el valor inicial de la varaible de sesion "carrito" es 0 al inicio y lo va incrementando correctamente , pero en los demás navegadores el valor inicial es 1 y por tanto cada vez que se pide un artículo lo incrementa 2 veces. Le he dado muchas vueltas y no veo la solución, no sé si es que soy muy bruto o estoy haciendo algo mal.
Se agradece cualquier ayuda. Un saludo