El array superglobal $_SESSION . no se trabaja igual que cuando usabas (supongo) session_register() .. donde el session_register() lo hacias donde querias y por otra parte de tu código dabas valor a esa variable que luego "registrabas" con session_register() ..
Si usas $_SESSION .. has de trabajarlo como si de un array cualquiera se tratase .. osease .. En tu caso ... podrías usar algo tipo:
Código PHP:
$_SESSION['ArrayArt']=$ArrayArt;
al final y fuera de tu bucle do .. while que usas para "llenar" ese array ... (y por supuesto quitar el $_SESSION que tienes antes del bucle en cuestión).
Otro detalle .. Supongo que usaras session_start() antes de cualquier intento de llamadas a $_SESSION .. si no es así usalo pues sino la sesión no se inicializa. Ademas tienes que tener en cuenta si (y como ) estás propagando el SID (Identificador Único de sesión ..)
más info:
www.php.net/session
Un saludo,