Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/10/2007, 11:26
okram
Invitado
 
Mensajes: n/a
Puntos:
Abrir diferentes ventanas con un mismo sitio, pero todas con la misma sesion

Se me presentó un problemón. Un cliente me solicitó una aplicación para manejar las sesiones. El objetivo es que ésta sirva de base para un sistema de fotos. Ahora, ese sistema de fotos tendrá la opción de marcar favoritos, guardándolos en variables de sesión. Ahí está el problema. Si el usuario abre una nueva ventana (sólo pasa en IE), y aunque esté abierta la ventana original, se crea un nuevo id de sesion, con lo que los favoritos que habñia marcado no funcionan en esa nueva ventana, mas sí aparecen con toda normalidad en la anterior.

Deseo que se mantenga el id de sesion en las distintas ventanas que se abren...

La sesión la propago por cookies, pero me tope con algo nuevo para mi.

En una ventana (original) abro la pagina crear.php. Allí creo una cookie. Luego, al hacer un
Código PHP:
print_r($_COOKIE); 
me muestra dos cookies. Una contiene el nombre de mi sesion y el id (eso está bien), y la otra es la cookie que creé anteriormente en crear.php.

Ahora, dejo esa ventana abierta y abro una nueva: otra.php... Si alli hago un print_r($_COOKIE) sin inicializar la sesion; me muestra solo una cookie, la que yo mismo creé, mas no está la de sesión que sí aparece en la ventana original. Si inicializo la sesión, me muestra dos cookies, pero la que corresponde a la sesion, a pesar de tener el mismo nombre (el nombre de la sesion), cambia en el valor, tomando un nuevo id.

Por todo esto, deduzco que la cookie que se genera para almacenar el id de la sesion no es como cualquier otra cookie, y por lo tanto, no se puede acceder a ella de la misma manera que a otras cookies. Aún si veo el archivo de texto de la cookie que se guarda en la PC, nisiquiera allí está la de la sesión. ¿Dónde se guarda entonces esta cookie? y... ¿cómo puedo saber si existe? Esta útlima pregunta... si la cookie existe, es que hay una ventana abierta con una sesion iniciada, por lo tanto debo tomar esa misma sesion...

Algo larga mi pregunta, pero...

En fin, en un inicio probé creando una cookie que contenga el id de la sesion, y luego verifico si esa cookie existe, entonces tomo ese id. Pero el problema es que al cerrar el navegador la cookie persiste, por lo que la informaciónd el usuario está en riesgo.

Espero me puedan ayudar...

Un saludo,

P.D.: Aquellos que me van a decir cosas como "Pon un mensaje que diga: No ensusies mi página con la basura del IE" o "Cámbiate a FF", por favor, abstenerce. Ya dije que es para un cliente, así que no es la solución .