2011-08-16 13 views

Respuesta

19

No es un error, es una característica. Las cookies de sesión (es decir, las cookies con una duración de 0) se eliminan al final de la sesión del navegador, lo que, en el caso de una aplicación web a pantalla completa, ocurre tan pronto como sale de la aplicación web. Si desea que persistan, simplemente configure la duración de su cookie a algo mayor que el 0 predeterminado (utilizo 1 año).

Ahora su pregunta podría ser: ¿cómo configuro la duración de mi cookie? Suponiendo que está usando PHP, el trozo de código sería:

$lifetime = 31536000; // one year 
setcookie($varName,$varValue,time()+$lifetime); 

Si está usando sesiones PHP, tendrá que volver a escribir la cookie de añadir toda una vida mayor que 0:

setcookie(session_name(),session_id(),time()+$lifetime); 

Normalmente, no debería tener que volver a escribir la cookie de sesión para cambiar la duración predeterminada, ya que la función session_set_cookie_params debería permitirle hacer eso, pero descubrí que no siempre es así.

+0

¡Guau, muchas gracias! ¡He estado investigando esto por varios días! Incluso traté de guardar la ID de la sesión en el almacenamiento local y enviarla de vuelta al servidor cuando la aplicación se inició de nuevo, pero eso no funcionó. ¡Gracias de nuevo! –

+0

Es un placer :) – KPM

+0

@KPM, pero ¿no cree que causa serios problemas de seguridad? – nKognito

Cuestiones relacionadas