Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/03/2009, 15:06
parriman
 
Fecha de Ingreso: enero-2009
Ubicación: Valencia (España)
Mensajes: 29
Antigüedad: 15 años, 3 meses
Puntos: 1
Crear array con register globlas off

Hola.

He conseguido adaptar la web para que funcione con register_globals OFF, pero hay una parte que no va bien.

Este funcionaba perfecto con Globlals en ON:

Código PHP:
<?
  
include ('book_sc_fns.php');
  
// El carrito de compra necesita sesiones, así que iniciar una.
  
session_start();

  if(
$new)
  {
    
//nuevo artículo seleccionado
    
if(!session_is_registered("cart"))
    {
      
$cart = array();
      
session_register("cart");
      
$items 0;
      
session_register("items");
      
$total_price "0.00";
      
session_register("total_price");
    }
    if(
$cart[$new])
      
$cart[$new]++;
    else
      
$cart[$new] = 1;
    
$total_price calculate_price($cart);
    
$items calculate_items($cart);

  }

Y ahora, con Globals en OFF, aunque le he añadido después del "sesion_start()" la "recogida" de la variable:
Código PHP:
$new=$_GET["new"
Ya no funciona. Me recoge el primer valor y lo añade al carrito ($cart), pero cuando añado el siguiente producto, NO LO SUMA, lo sobrescribe......

Veo claro que no reconoce esta parte del script:

Código PHP:
if($cart[$new])
      
$cart[$new]++;
    else
      
$cart[$new] = 1
Pero no entiendo por qué....... sobre todo por que cuando más adelante, le pido un echo de $new, y un print_r de $cart, ME DEVUELVE EL VALOR CORRECTAMENTE de ambos........


He tratado de actualizar el script con las funciones "correctas", y ha quedado así:

Código PHP:
<?
  
include ('book_sc_fns.php');
  
// El carrito de compra necesita sesiones, así que empezar una
  
session_start();

 
// recuperar categorías de la base de datos
  
 
$new=$_GET["new"];
 
$cart=$_SESSION["cart"];
 
  if(
$new)
  {
    
//nuevo artículo seleccionado
    
     
if(!isset($cart))
      
$_SESSION["cart"];
      
$_SESSION["items"] = 0;
      
$_SESSION["total_price"] = "0.00";
      
                
    if(isset(
$cart[$new]))
      { 
$cart[$new]= 9;  }
    else
     { 
$cart[$new] = ;  }
     
    
$total_price calculate_price($cart);
    
$items calculate_items($cart);

  }
Pero tampoco funciona. Hace LO MISMO QUE EL "ANTIGUO"...... NO HACE LA SUMA correspondiente.

Lo que NO tengo claro es donde he puesto "$cart=$_SESSION["cart"];".... Hago esa "llamada" para que tenga obtenga el valor de $cart cuando no existe $new, pero no sé si está bien...... Desde luego, si no lo pongo, el carro ni siquiera coge el primer valor (producto).....

¿ALGUNA IDEA DE LO QUE PUEDE OCURRIR?

Gracias a todos.

Última edición por parriman; 21/03/2009 a las 15:15 Razón: Error de script