Habrá que ver que configuración de sesiones usas.
Revisa si propagas el SID en cookies:
session.use_cookies = 1
y si dispones de un navegador que acepte cookies.
Por qué ... en tu código no propagas el SID manualmente, PHP tampco lo hará aunque uses session.use_trans_sid = 1 en tu php.ini por qué usas redireccionamiento tipo header() donde PHP no entra a reescribir el SID en el link a redirecionar.
más info y detalles de configuración:
www.php.net/session
Las cookies sólo están disponibles en la siguiente petición al servidor (ojo con eso) lo mismo que ahí estaran disponibles tus variables en $_SESSION en la próxima recaga o redirecionamiento que hagas . .pero todo depende de si se pudo crear es cookie (si es que propagas el SID en cookies y si usas un navegador que las acepte).
-----
Cita: session_register(); //hay algunos servers que requieren register :)
depende de la versión de PHP .. y nunca hay que mezclar registro de variabels de sesión por esa función y por los arrays superglobales $_SESSION ..
Un saludo,