Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Como borrar la cookie , cuando se cierra el navegador (https://www.clubdelphi.com/foros/showthread.php?t=41725)

David 23-03-2007 17:45:03

Como borrar la cookie , cuando se cierra el navegador
 
Hola

cuando inicio un sesion con session_start(); ,se crea un archivo con los datos de la sesión . El caso es que quiero que se elimine ese archivo al cerrar el navegador .

con session_destroy(); se elimina , pero no sé si hay alguna manera de que se ejecute un session_destroy() cuando cierra el navegador.

He mirado en manuales , en foros , pero nadie me da una respuesta exacta .

Además como en el servidor , no se donde se guardan estas cookies , no sé si hay algún comando para borrar todas las cookies que haya , para hacer limpieza.

Un saludo

dec 23-03-2007 18:00:19

Hola,

Que cuando se cierre el navegador del usuario se ejecute "algo" en tu Servidor... creo que es por lo menos complicado y no muy "normal". Si no me equivoco las "cookies" de "sesión" (con un tiempo de expiración sin determinar o con valor "0") son borradas por el propio navegador cuando este se cierra.

¿Encontraste algún problema en este sentido? ¿Acaso el navegador conserva los datos de la sesión de un usuario? Lo único que se me ocurre es que el navegador conserve el "archivo de la cookie", pero, los datos... ¿conserva los datos de la "cookie" una vez cerrado el navegador?

David 23-03-2007 21:15:22

yo estas pruebas las hago en local , por que en el servidor no veo el lugar de las cookies , creo que no puedo acceder a él .

y trabajando en local , en mi ordenador , al cerrar el explorador no se borran las cookies ni los datos que contienen . El caso es que no se borra y vas preguntando por ahí y nadie dice en concreto que hacer para borrar la cookie al cerrar el navegador.

dec 23-03-2007 21:31:45

Hola,

A ver. Si nos ceñimos al manual de PHP, sobre la función "setcookie" podemos ver lo siguiente:

Código:

bool setcookie ( string nombre [, string valor [, int expirar [, string ruta [, string dominio [, bool segura]]]]] )
Y si nos adentramos ya en el parámetro "expirar" esto es lo que dice el manual de PHP:

Cita:

Descripción:

La hora en la que expira la cookie. Este valor es una marca de tiempo Unix así que es el número de segundos recorridos desde el epoch. En otras palabras, es probable que este valor sea definido con la función time() más el número de segundos antes de que usted quiera que expire. O es posible usar mktime().

Ejemplo:

time()+60*60*24*30 definirá que la cookie expire en 30 días. Si no se define, la cookie expirará al final de la sesión (cuando el navegador sea cerrado).
Es decir, que si uno no define el tiempo de expiración de la "Cookie" (o se establece "-1" ó "0", que ahora no recuerdo), la "cookie" expirará cuando se cierre la sesión, cuando el navegador sea cerrado.

Ahora hay que aclarar cómo estableces tú las "cookies", puesto que es extraño que si estas deben expirar cuando se cierre la sesión del usuario, sin embargo no sea así y estén disponibles en sucesivas sesiones.

Algo raro ocurre. Pero ya digo, que yo sepa no existe una función para borrar una "cookie". Todo lo más para inicializar su valor, o para "caducarlas", de modo que el navegador se encarge de borrarlas una vez se cierre la sesión de usuario.

kayetano 26-03-2007 17:07:22

Hola

Puedes utilizar el evento de JavaScript ONUNLOAD para borrar las cookies de tu navegador, el problema no se produce solo cuando se cierra el navegador, sino que también sucede cuando se abandona una web.
Pues bien con este evento puedes hacer una llamada a una archivo PHP que borre la sessión y todos sus valores.


La franja horaria es GMT +2. Ahora son las 15:38:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi