Bueno, pues he probado las comillas simples, los espacios, y los corchetes (ya lo había probado, pero lo he puesto de nuevo a ver).
Ahora queda 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]++; }
else
{ $cart[$new] = 1 ; }
$total_price = calculate_price($cart);
$items = calculate_items($cart);
}
Y NO FUNCIONA.
He puesto REGISTER GLOBALS ON, y el antiguo funciona perfecto, Y ESTE NUEVO NO. Hace lo mismo que en OFF...... Solo almacena un dato en el array, supongo que por que no reconoce la existencia de $cart[$new].
Creo que es fallo del código, no del register globals......
¿que puede ser? Ese valor de $new que no toma....... pero que luego sí que me lo da...... DEBE SER EL ARRAY $CART.... que no se crea correctamente, pero no consigo saber el por que.....
En globals OFF, el código "antiguo" tampoco funciona. Se comporta como el nuevo, no suma productos a los existentes.......
El array $cart tiene que estar fallando..... algo del inicio de sesión, el !isset.......
Gracias de nuevo, y si se te ocurre algo más, soy todo oídos, quiero decir, ojos...;)