No se si tendrá que ver, pero en creo que puede ser ocsa de configuración.
En el php.ini como están
track_vars y
register_globals?
El primero tiene que estar activado y el segundo desactivado.
De lo contrario tendrias que registrar las variables con session_register()
¿Que versión de php usas?
Saludos,
PD: No hay ningun error en tu codigo, de hecho a mi me funciona.