Bueno .. yo no me complico con el SID .. dejo a PHP que lo propage en cookies (session.use_cookies = 1 o mejor todavía: session.use_only_cookies =1) y desactivo session.use_trans_sid =0
Esto me obliga (a mi y a mis "usuarios") a disponer de un navegador que acepte cookies .. pero gano en seguridad al no propagar el SID en link que "podrían" salir fuera de mi sitio (ejemplo . .un link que pones en un chat .. que envias por e-mail .. etc).
Si propagas el SID de forma manual (no por cookies) .. si en algún punto "te dejas" el SID sin propagarlo (ejemplo en esas páginas que no requieres del uso de esas variables de sesión) .. vas a perder el SID si pretendes volver a las páginas que si lo requieren (de uso de sesiones). Por ende .. el SID debes propagarlo siempre (sea manualmente como lo haces o dejando a PHP que lo haga en una cookie y olvidarte del SID) y . .ya validaras el estado o existencia de alguna variable de sesión en las pàrtes o páginas completas que lo requieran en función del valor o existencia de alguna de esas variables que viajan en tu sesión.
Este tipo de validaciones ..
if (($_SESSION['masterlogin']==true or session_id()==$id) AND isset($_SESSION['name'])){
las puedes resumir en:
Código PHP:
if (isset($_SESSION['masterlogin'])){
// sesión válida ..
}
El SID es único para cada cliente que la inicia .. así que no me preocupo de ver otras variables de sesión . .SI se crearon "asumo" que pasó mi validación anterior .. Y sigue usando el mismo SID que inició mi primer session_start() que inició en alguna de las páginas de mi sitio (o tras autentificarse).
Un saludo,