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:
A este codigo accedo desde esta linea//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");
Código:
que abre una ventana modal mediante la función javascript "pedido(ID_articulo,nombre_art)) y que dirige a pedir.php de la siguiente formaecho "<a href='#' onclick='javascript:pedido( \"".$ID_articulo."\", \"".$nombre_art."\")' title='Añade a pedido' >Me lo pido</a>";
Código:
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.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(); }); }); } }); }
Se agradece cualquier ayuda. Un saludo