Estoy manejando un carrito de compras con sesiones y ahi guardo los codigos de los productos.
EJ:
$_SESSION['carrito'] = "0,3,5,14,2";
cada uno de esos numeros es el codigo del producto que se agregó al carrito.
Ahora mi duda es por ejemplo si yo quiero eliminar el 2, 14 y 3 me limpie bien la sesion dejandome con la sesión asi:
$_SESSION['carrito'] = "0,5";
Tengo algo que me limpia relativamente bien excepto cuando quiero eliminarlos todos.
cuando tengo la sesion así:
$_SESSION['carrito'] = "0,3,5,14,2";
y elimino todos por formulario, la sesion me queda así:
$_SESSION['carrito'] = "0,2";
siempre con cero y el ultimo numero de la sesion... si la sesion temrinaba con 5, entonces la sesión me queda con 0,5.
Tengo el siguiente codigo que hace el error:
Código PHP:
if(isset($_POST['id_producto'])){
//echo $_SESSION['carrito'];
$id_producto = implode(",", $_POST['id_producto']); // los dejo como 1,2,3,4
$id_producto = explode(",", $id_producto); // dejo los productos que seleccione para eliminar en un array $id_producto
$ar = explode(',',$_SESSION['carrito']); // dejo en array mi sesion para empezar a comparar mas adelante
for($ses=0; $ses<=count($ar); $ses++){
if($ar[$ses]==NULL || $ar[$ses]==''){
//echo "NULL<br>";
unset($ar[$ses]);
}
}
for($a=0; $a<=count($ar); $a++){
for($b=0; $b<=count($id_producto); $b++){
if($ar[$a]==$id_producto[$b]){
unset($ar[$a]);
}
}
}
$arg = implode(',',$ar);
$_SESSION['carrito'] = $arg;
//echo $arg;
ir("index.php?id=gestioncart");
}