Problemas con $_SESSION
Publicado por edu (3 intervenciones) el 20/08/2009 13:36:34
Estoy programando un protocolo médico donde es importante conocer cada acción que ejecuta cada usuario.
Comienzo con una página de autentificación de usuario y si la información es correcta establezco una variable global de la siguiente forma:
$_SESSION['id_usuario']=$id_usuario;
Donde $id_usuario es el ID de un determinado usuario (el que acaba de autentificarse) extraído de la base de datos MySQL
En cada script tengo al comienzo algo así:
session_start();
if (!$_SESSION['id_usuario'])
{
header("Location: http://{$_SERVER['SERVER_ADDR']}/autentificacion.php");
exit();
}
Es decir, si no hay un usuario autentificado, lo fuerza a hacerlo y nadie puede acceder a ninguna página sin autentificarse.
Pero, el problema es que cuando navego a través de 3 o 4 scripts (o páginas) la variable $_SESSION[id_usuario] ya no está disponible (está vacía) porque me fuerza a autentificarme aún cuando ya lo hé hecho. Lo llamativo es que después de que me obliga a autentificarme por segunda vez este problema desaparece. Parece que la primera vez que me autentifico, la variable no se registra correctamente y lo hace recién en la segunda autentificación. Supuestamente $_SESSION es superglobal y puedo acceder a su valor en cualquier ámbito y momento. Además de forzar la autentificación preguntando si existe $_SESSION[id_usuario] lo uso para mantener un historial en la base de datos de las acciones de cada usuario. Por esto es importante que pueda acceder a esta variable en cualquier momento.¿Podrían ayudarme con esto? ¿Será un proble de configuración de PHP.ini?. Gracias.
Comienzo con una página de autentificación de usuario y si la información es correcta establezco una variable global de la siguiente forma:
$_SESSION['id_usuario']=$id_usuario;
Donde $id_usuario es el ID de un determinado usuario (el que acaba de autentificarse) extraído de la base de datos MySQL
En cada script tengo al comienzo algo así:
session_start();
if (!$_SESSION['id_usuario'])
{
header("Location: http://{$_SERVER['SERVER_ADDR']}/autentificacion.php");
exit();
}
Es decir, si no hay un usuario autentificado, lo fuerza a hacerlo y nadie puede acceder a ninguna página sin autentificarse.
Pero, el problema es que cuando navego a través de 3 o 4 scripts (o páginas) la variable $_SESSION[id_usuario] ya no está disponible (está vacía) porque me fuerza a autentificarme aún cuando ya lo hé hecho. Lo llamativo es que después de que me obliga a autentificarme por segunda vez este problema desaparece. Parece que la primera vez que me autentifico, la variable no se registra correctamente y lo hace recién en la segunda autentificación. Supuestamente $_SESSION es superglobal y puedo acceder a su valor en cualquier ámbito y momento. Además de forzar la autentificación preguntando si existe $_SESSION[id_usuario] lo uso para mantener un historial en la base de datos de las acciones de cada usuario. Por esto es importante que pueda acceder a esta variable en cualquier momento.¿Podrían ayudarme con esto? ¿Será un proble de configuración de PHP.ini?. Gracias.
Valora esta pregunta


0