Foros del Web » Programando para Internet » PHP »

Eliminar cookies después de un tiempo X

Estas en el tema de Eliminar cookies después de un tiempo X en el foro de PHP en Foros del Web. Hola otra vez!!! Ya he estado leyendo sobre las sesiones, gracias a que dos de uds me dijeran donde podía comenzar a aprender sobre ellas. ...
  #1 (permalink)  
Antiguo 28/09/2005, 08:31
Avatar de Vannessa  
Fecha de Ingreso: septiembre-2005
Mensajes: 69
Antigüedad: 18 años, 6 meses
Puntos: 0
Eliminar cookies después de un tiempo X

Hola otra vez!!!
Ya he estado leyendo sobre las sesiones, gracias a que dos de uds me dijeran donde podía comenzar a aprender sobre ellas.
Y he estado leyendo que existen dos maneras de pasar las variables una por url y otra por cookies... La de url se me hace la más fácil porque solo adjunto la variable en la url a la que quiero ir... Pero sobre las cookies tengo otra duda:

¿Qué no se supone que las cookies se quedan en la máquina del cliente, y si es así, alguien puede tomar esa cookie y tomar las variables de sesión y volver a entrar?...

Tal vez estoy en un error, pero es bueno preguntar las dudas que se tengan para ya no tener problemas en un futuro... Ahora mi pregunta es:

¿Cómo le hago para que la cookie que se queda en la máquina del cliente se elimine en un tiempo X?

  #2 (permalink)  
Antiguo 28/09/2005, 08:45
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Hola Vanessa. Las variables de sesion de guardan en el servidos, las cookies en la maquina del cliente.
Si no recuerdo mal, en la funcion set_cookie hay un parametro con el que especificas el tiempo que va a estar almacenada en el ordenador del cliente. Busca informacion en es.php.net
  #3 (permalink)  
Antiguo 28/09/2005, 08:54
Avatar de Vannessa  
Fecha de Ingreso: septiembre-2005
Mensajes: 69
Antigüedad: 18 años, 6 meses
Puntos: 0
Gracias jerkan, eres muy amable.. ahorita voy a ver eso del set_cookie en php.net para ver como puedo aliminarlas...

  #4 (permalink)  
Antiguo 28/09/2005, 08:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Y he estado leyendo que existen dos maneras de pasar las variables una por url y otra por cookies
Enfocado al tema de sesiones .. lo que se pasa por el URL o en una cookie no son tus variables .. (que siempre van a permanecer en el servidor) sino el SID (Identificador Único de sesión).

Cita:
¿Qué no se supone que las cookies se quedan en la máquina del cliente, y si es así, alguien puede tomar esa cookie y tomar las variables de sesión y volver a entrar?...
En la cookie sólo queda el SID .. El tiempo de expiración de esa cookie lo define tu php.ini por defecto y puedes usar la función que te han mencionado para alterar ese valor. Lo normal es usar un tiempo de expiración = 0 .. por ende, cuando cierres la última ventana de tu sitio .. la cookie se muere y del SID no quedará rastro.

Ahora, por supuesto que si tienes la ventana abierta y buscas tus cookies . .veras la que PHP genera con el SID en ella. Pero si tu propagas el SID exclusivamente en cookies no vas hacer mucho con ella.

También puedes ajustar la duración de tu sesión (session.gc_maxlifetime php.ini) (por defecto está en 24 minutos!!!) así reduciras ese tipo de problemas.

Te recomiendo leer:
http://phpsec.org/projects/guide/
(sobre todo su sección sobre sesiones).

Un saludo,
  #5 (permalink)  
Antiguo 28/09/2005, 10:00
Avatar de Vannessa  
Fecha de Ingreso: septiembre-2005
Mensajes: 69
Antigüedad: 18 años, 6 meses
Puntos: 0
Hola otra vez!!
Estuve leyendo en php.net y econtre este código para eliminar las cookies de sesión con límite de una hora:

Código PHP:
<?php
// establecer la fecha de expiracion hace una hora
setcookie ("CookieDePrueba"""time() - 3600);
setcookie ("CookieDePrueba"""time() - 3600"/~rasmus/"".example.com"1);
?>
Y además encontre este otro más complejo

Código PHP:
<?php
  session_start
();
  
// many code
  
$sessionName session_name();
  
$sessionCookie session_get_cookie_params();
  
session_destroy();
  
setcookie($sessionNamefalse$sessionCookie['lifetime'], $sessionCookie['path'], $sessionCookie['domain'], $sessionCookie['secure']);
 
?>
cual es la diferencia real entre uno y otro?
El primer código que adjunte, ¿va también después del session_start()?
  #6 (permalink)  
Antiguo 28/09/2005, 10:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El primer ejemplo es la creación de una simple cookie .. nada que ver con sesiones o las cookies que pueda crear PHP si así propagas el SID ..

El segundo código genera una cookie en función a parámetros de la sesión ...

Pero .. puedes revisar tu configuración de PHP en principio y ver que valor tienen las directivas session.

Por qué .. le estás dando muchas vueltas a esa "cookie" y todavía creo que no sabes si realmente estás propagando el SID en cookies realmente (eso debes confirmarlo para asegurarte ):

Cita:
session.cookie_lifetime especifica la duración de la cookie en segundos que se manda al navegador. El valor 0 significa "hasta que se cierra el navegador", y es el que se encuentra por defecto.
Un saludo,
  #7 (permalink)  
Antiguo 28/09/2005, 10:23
Avatar de Vannessa  
Fecha de Ingreso: septiembre-2005
Mensajes: 69
Antigüedad: 18 años, 6 meses
Puntos: 0
En efecto Cluster, tiene un valor de 0. Entonces no será necesario tener que implementra nada en el código que estoy generando... Gracias
  #8 (permalink)  
Antiguo 28/09/2005, 10:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No sería necesario .. pero también es cierto que a veces uno no sabe donde va a parar la aplicación que hace .. puede ser que caiga en un servidor con diferente configuración y en ese caso no se comporte como esperamos nuestra aplicación, por ende .. suele ser recomendable "forzar" la configuración de PHP a nuestra conveniencia para asegurarnos.

Un saludo,
  #9 (permalink)  
Antiguo 28/09/2005, 13:27
Avatar de Vannessa  
Fecha de Ingreso: septiembre-2005
Mensajes: 69
Antigüedad: 18 años, 6 meses
Puntos: 0
Y como puedo forzarlo???
  #10 (permalink)  
Antiguo 28/09/2005, 13:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Para el tema del tiempo de expiración de la cookie (si propagas el SID en cookies):

session_set_cookie_params()
http://www.php.net/manual/es/functio...kie-params.php

Y para otras cosas puedes usar ini_set()

Un saludo,
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 16:32.