Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/03/2007, 14:48
Avatar de gerson
gerson
 
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Problema con registro de variables en sesiones

Hola de nuevo, bueno cambie mi script y estoy utilizando $_SESSION, aparentemente todo esta bien, pero hay un detalle, q me esta enloqueciendo, pues bien:

caso:

Al querer agregar un item a mi carrito de compras, en el primer intento no lo hace, (retrocedo un pag) y vuelvo a hacer el mismo procedimiento.. o sorpresa agrega normal... Por momentos no hay problema y agrega normal, pero otros no... la verdad no entiendo a q se debe...

esta es parte del script en donde agrego el item
Código PHP:
$action $_GET['action'];
//if (!session_is_registered('cart')) {
if (!isset($_SESSION['cart'])) {
    
$cart = new Class_Carrito;        
}else {
    
$cart $_SESSION['cart'];
}

switch (
$action) {
    case 
'AddItem':
        
$pro = new Class_Producto;
        
$id_pro $_POST['id_pro'];
        
$cant_pro $_POST['cant_pro'];
        
$talla_pro $_POST['talla_pro'];
        
$pro->ObtenerDatos($id_pro);
        
$datos = array('id'        => $id_pro,
                       
'cant'    => $cant_pro,
                       
'sku'    => $pro->ProductoCampos['pro_sku'],
                       
'titulo'    => $pro->ProductoCampos['pro_titulo'],
                       
'talla'    => $talla_pro,
                       
'precio'    => $pro->ProductoCampos['pro_precio']);
        
$cart->AgregarItem($datos);        
        unset(
$datos);
        
//session_register('cart');
        
$_SESSION['cart'] = $cart;
        
FunRedireccionar(FunUrl('cart.php'));
        break;
//continua otras instrucciones 
esto es el la clase para agregar item
Código PHP:
class Class_Carrito {
    var 
$SubTotal;
    var 
$Carrito;

    function 
AgregarItem($datos){
        if (
$this->ComprobarDatos($datos)){
            for (
$i=0;$i<sizeof($this->Carrito['car_id']);$i++) {
                if ((
$this->Carrito['car_proid'][$i] == $datos['id']) && ($this->Carrito['car_talla'][$i] == $datos['talla'])) {
                    
$this->Carrito['car_cant'][$i] = $this->Carrito['car_cant'][$i] + $datos['cant'];
                    
$this->Carrito['car_monto'][$i] = $this->Carrito['car_cant'][$i] * $this->Carrito['car_precio'][$i];
                    
$agregado true;
                    break 
1;
                }else {
                    
$agregado false;
                }
            }
            if (!
$agregado) {
                if (
sizeof($this->Carrito['car_id']) == 0) {
                    
$id_car 1;
                }else{
                    
$id_car end($this->Carrito['car_id']) + 1;
                }
                
                
$this->Carrito['car_id'][] = $id_car;
                
$this->Carrito['car_proid'][] = $datos['id'];
                
$this->Carrito['car_cant'][] = $datos['cant'];
                
$this->Carrito['car_sku'][] = $datos['sku'];
                
$this->Carrito['car_titulo'][] = $datos['titulo'];
                
$this->Carrito['car_talla'][] = $datos['talla'];
                
$this->Carrito['car_precio'][] = $datos['precio'];
                
$this->Carrito['car_monto'][] = $datos['cant'] * $datos['precio'];
            }
            
$this->SubTotal array_sum($this->Carrito['car_monto']);
            return 
true;
        }else{
            return 
false;
        }
    } 
Bueno haber si con esto me pueden ayudar y para q puedan ver como se esta comportando el script pueden verlo aqui www.martial-arts-shirts.com
__________________