El problema principal es que las variabels de sesión no quedan disponibles hasta que se hace una petición al servidor .. osease:
hacer por ejemplo esto:
Código PHP:
<?
session_start();
$_SESSION['variable']=valor;
// y .. en el mismo flujo del script intentar:
echo $_SESSION['variable'];
// ahí todavía no será reflejado en $_SESSION['variable']
// su valor recien asignado hasta que no se "envie al servidor" (se haga la petición: via recarga página o se lea esa variable sesion en otra página ..)
?>
Otro detalles son por ejemplo como propagues el SID ..
SI usas cookie para propagar el SID y tu navegador de las pruebas las acepta .. junto a que el SID lo propagues de forma automática .. No tendras problemas ..
Pero si el SID lo propagas de forma automática y no usas propagación por cookies (osease, solo dejas a PHP reescriba los <tag> como <a> <form .. > etc ..) Depende como hagas el redireccionamiento .. es probable que estes perdiendo el SID por el camino ..
Ejemplo:
Si usas redireccionamiento tipo:
Código PHP:
header ("location: talpagina.tal");
o via javascript o <META> tag .. Ahí PHP no va añadir el SID de forma automática .. Tendrías que añadirlo tu manualmente en esos casos concretos generando el SID .. por ejemplo:
Código PHP:
$sid=session_name()."=".session_id();
header("location: pagina.tal?$sid");
Todo esto lo determinan las directivas de tu php.ini (en un phpinfo() lo puedes ver):
session.use_cookies = 1 (a 1 indica que usas propagación via cookies del SID)
session.use_trans_sid = 1 (a 1 indica que usas propagación del SID automático)
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fields et=" (y .. los tag HTML que se van a reescribir para q PHP añada el SID si usas la anterior directiva en "automático" ..
Un saludo,