El orden correcto es:
registra variable ..
Código PHP:
<?
session_name("nombre_session_opcional_no_necesario");
session_start();
// según parece .. si se usa "session_register()" se podría omitir session_start() . .confirmelo en el manual oficial.
session_register("variable");
?>
lee variable sesión
Código PHP:
<?
// importante que el nombre de la sesión (si se usó) sea el mismo que el que la inicia.
session_name("nombre_session_opcional_no_necesario");
session_start();
// se puede acceder como global si se usa register_globals a ON ..
echo $variable;
//Pero . por un minimo de seguridad .. usen el array:
echo $HTTP_SESSION_VARS['variable'];
?>
En la documentación oficial:
www.php.net/session está descrito cuando y donde usar cada función de las mencionadas.
Pero, es -altamente- recomendable que si usas PHP 4.1.0 o superior .. uses los arrays superglobales $_SESSION, esto te hará independiente de la configuración de register_globals (php.ini) del servidor en cuestión. Ademas de un acceso -seguro- a las variables de sesión.
Luego tendras que ver como propagas el SID en tu aplicación .. no sé si lo haces manualmente o dejas que PHP lo haga sólo .. tampoco si lo vas hacer por cookies o no .. Factores que debes tener presente ante "perdidas" de variables de sesión.
Un saludo,