El uso de sesiones .. no es correcto (por lo menos hoy por hoy desde PHP 4.1.0 en adelante).
Debes manejar las sesiones con los arrays superglobales:
$_SESSION
eso es un array .. y ahí guardas por elementos lo que gustes .. sean variables .. o más arrays de cualquier tipo .. No es necesario serializar ni nada más extra (como creo que tendrías que hacer si usas "session_register()" ..)
Si estás haciendo un "carrito" de compra .. que en definitiva gestiona una série de datos relacionados .. ya sea en arrays N-dimensionales .. o bien N arrays de una dimensión con un indice común (son las dos formas de resolver el problema) .. que al final se ha de "propagar" de alguna forma (sesión es lo ideal . .podría ser por el URL pero no es ni seguro ni óptimo ..) .. puedes usar el buscador del foro .. ahí veras muchos ejemplos.
Puedes gestionar un array bidimensional asociativo tipo:
$carrito[0]['propiedad1']="valor";
$carrito[0]['propiedad2']="valor";
$carrito[0]['propiedad3']="valor";
$carrito[1]['propiedad1']="valor";
$carrito[1]['propiedad2']="valor";
$carrito[1]['propiedad3']="valor";
// etc ...
O bien arrays simples .. pero en base al mismo indice:
$carrito_propiedad1[0]="valor";
$carrito_propiedad2[0]="valor";
$carrito_propiedad3[0]="valor";
$carrito_propiedad1[1]="valor";
$carrito_propiedad2[1]="valor";
$carrito_propiedad3[1]="valor";
La segunda forma .. si no te aclaras con "arrays" sería más sencilla de entender y de implementar .. Pero, ahí tendrías que propagar en la sesión esas 3 o N arrays .. mientras que en la opción 1 como es bidimensional sólo propagas una en la sesión.
La gestión de la variable cara a la sesión sería tipo:
Código PHP:
session_start();
if (isset($_SESSION['mi_carrito'])){
$carrito=$_SESSION['mi_carrito'];
} else {
$carrito=array();
}
Y a partir de ahí .. gestionas el array $carrito comodamente ...
Un saludo,