Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/07/2009, 15:34
rodrigo_lopez
 
Fecha de Ingreso: diciembre-2002
Ubicación: arica 3334
Mensajes: 75
Antigüedad: 21 años, 4 meses
Puntos: 0
Pregunta ayuda limpiando una sesion

Hola, tengo un problema que creo que es simple, pero he tratado muchas formas de arreglarlo y no puedo.
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");
                

Estoy haciendo algo mal? o se hace de otra forma?
__________________
Rodrigo Lopez