Foros del Web » Programando para Internet » PHP »

Curiosidad en Session

Estas en el tema de Curiosidad en Session en el foro de PHP en Foros del Web. Hola: Me gustaría saber por qué ocuurre esto. 1.- Abro sesión en página 1. 2.- Envío por post variables a página 2.Abro sesion y las ...
  #1 (permalink)  
Antiguo 28/11/2005, 11:17
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 13 años, 7 meses
Puntos: 0
Curiosidad en Session

Hola:

Me gustaría saber por qué ocuurre esto.

1.- Abro sesión en página 1.
2.- Envío por post variables a página 2.Abro sesion y las recojo con
Código PHP:
$_SESSION['variable1']= $variable1
y me aseguro de que lleguen por post con
Código PHP:
$variable1=$_POST['variable1']; 
3.- En una tercera página hago lo mismo con otras variables.
4.- En la última página las inserto en la tabla de la base de datos y hago
Código PHP:
session_unset();
session_destroy(); 
Si miro la sesion en la carpeta de temporales ha desaparecido.

Lo curioso (o, mejor, que no entiendo) es que si hago atrás en el navegador y recargo página, la sesión vuelve a aparecer (hasta aquí, normal porque la llamo), pero se llena con las variables que había en la página que recargo.

Esto es lo que quisiera saber. Si es normal o estoy haciendo algo mal porque yo creía que si borras variables (unset) y además destruyres la sesión (destroy) no quedaba rastro de nada.

Esto trabajando en local. ¿Quizá sea algo de configuración?.

Me preocupa este asunto porque en una parte de la web el programa deriva hacia una u otra opción y mi idea sería utilizar el mismo nombre para variables que tienen la misma definición.

Muchas gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 28/11/2005, 11:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si, es normal .. pero sucede no por las sesiones en sí sino por la caché de tu navegador y del método que usastes para enviar tus datos: POST.

Todo lo que envias por POST queda en el navegador hasta la próxima recarga (no se si técnicamente es correcto lo que menciono pero es lo que sucede). Al ir hacia atras en tu navegador, las variables de tu navegador las vuelves a enviar a tu script PHP .. y de ahí se vuelven a crear tus variables de sesión como estaban.

Una sólución es usar "no caché" para tus páginas .. tanto por definición de:

session.cache_limiter (php.ini)
como
session_cache_expire (php.ini)

Ambas directivas se pueden definir por funciones equivalentes:
www.php.net/session_cache_limiter (revisa los comentarios de los usuarios de esta función .. hay muchos al respecto).
www.php.net/session_cache_expire

Teóricamente ajustando la página como "privada y no-caché" al ir hacia atras en tu navegador tu navegador tendría que decirte "la página ha caducado" y no re-enviar los datos nuevamente.

Un saludo,
  #3 (permalink)  
Antiguo 28/11/2005, 11:42
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 13 años, 7 meses
Puntos: 0
Gracias.

Ya estoy tranquilo.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:08.