Php+Sesiones+IIS
Publicado por soncillo (13 intervenciones) el 25/04/2005 13:05:30
Hola!
Tengo un problema con el IIS y las sesiones.
El caso es que el desarrollo de la aplicación ha estado fucnionando sin problemas con el apache.
Inicio una sesion (para el login), y la paso por url a la siguiente página; si no existe o coincide, muestra un mensaje; si coincide, deja entrar (típico login, vamos).
Lo dicho, con el apache funciona, crea la sesion y la pasa por url.
El problema viene con el IIS, que por cada página, me crea una sesión diferente, por lo tanto la sesión no coincide y no deja pasar.
El código de la página de login es:
//recibimos el login/pass y es correcto:
session_start();
session_register('sess_ide');
#asignamos a la variable de sesion el id de la sesion
$sess_ide=session_id();
...
//redirijo a la página de "admin"
echo '<meta http-equiv="Refresh" content="2; url=admin.php?sess_ide='.$sess_ide.'" />';
Hasta aqui todo ok, ha creado una sesión y la pasa por url a la página admin (en el navegador se puede leer la sesión, y la pasa bien).
Ahora el código de admin:
$sess_ide = $_GET[sess_ide];
session_register('sess_ide');
session_cache_limiter('nocache,private');
if(session_id()!=$sess_ide)
{
echo "<h1>No tienes permiso para entrar aqui.</h1>";
exit();
}
Y ahora está el problema. En el apache fucniona sin más, pero en el IIS AHORA crea otra sesión, por lo que session_id y sess_ide no son iguales y peta la aplicación Sad
Como lo véis???
Tengo un problema con el IIS y las sesiones.
El caso es que el desarrollo de la aplicación ha estado fucnionando sin problemas con el apache.
Inicio una sesion (para el login), y la paso por url a la siguiente página; si no existe o coincide, muestra un mensaje; si coincide, deja entrar (típico login, vamos).
Lo dicho, con el apache funciona, crea la sesion y la pasa por url.
El problema viene con el IIS, que por cada página, me crea una sesión diferente, por lo tanto la sesión no coincide y no deja pasar.
El código de la página de login es:
//recibimos el login/pass y es correcto:
session_start();
session_register('sess_ide');
#asignamos a la variable de sesion el id de la sesion
$sess_ide=session_id();
...
//redirijo a la página de "admin"
echo '<meta http-equiv="Refresh" content="2; url=admin.php?sess_ide='.$sess_ide.'" />';
Hasta aqui todo ok, ha creado una sesión y la pasa por url a la página admin (en el navegador se puede leer la sesión, y la pasa bien).
Ahora el código de admin:
$sess_ide = $_GET[sess_ide];
session_register('sess_ide');
session_cache_limiter('nocache,private');
if(session_id()!=$sess_ide)
{
echo "<h1>No tienes permiso para entrar aqui.</h1>";
exit();
}
Y ahora está el problema. En el apache fucniona sin más, pero en el IIS AHORA crea otra sesión, por lo que session_id y sess_ide no son iguales y peta la aplicación Sad
Como lo véis???
Valora esta pregunta


0