Foros del Web » Programando para Internet » PHP »

cookies

Estas en el tema de cookies en el foro de PHP en Foros del Web. Buenas a todos. Me estoy volviendo loco con las cookies. Les explico: Mediantes el archivo logout, un usuario se desconecta. Entre otras instrucciones ejecuto ésta: ...
  #1 (permalink)  
Antiguo 19/09/2008, 02:25
 
Fecha de Ingreso: septiembre-2008
Mensajes: 36
Antigüedad: 15 años, 7 meses
Puntos: 0
cookies

Buenas a todos.
Me estoy volviendo loco con las cookies.
Les explico:
Mediantes el archivo logout, un usuario se desconecta. Entre otras instrucciones ejecuto ésta:
Código PHP:
unset($_COOKIE['usuario']);
    
session_unset('logueado');
session_destroy(); 
En este mismo archivo, para realizar una prueba, verfico lo siguiente
Código PHP:
if(isset($_COOKIE['usuario']))
{
    echo 
'la cookie existe';
    echo 
$_COOKIE['usuario'];

El caso es que la COOKIE me la borra.

Pero al redireccionar al formulario principal (form.php), ¡La COOKIE no se me ha borrado!, y el usuario sigue logueado
Como es esto posible, si en logout.php se ha borrado la COOKIE y luego al redireccionar a form.php sigue estando ahí.

Espero que alguien me pueda ayudar.
Saludos

Última edición por WadE87; 19/09/2008 a las 02:28 Razón: texto mal editado
  #2 (permalink)  
Antiguo 19/09/2008, 08:37
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: cookies

Si vas a trabajar sobre la sesión, no accedas a la cookie!

La forma correcta de cerrar la sesión es

Código PHP:
$_SESSION = array();
session_destroy(); 
Y para comprobar variables de sesión, siempre accedé mediante $_SESSION, nunca mediante $_COOKIE.


Saludos.
  #3 (permalink)  
Antiguo 19/09/2008, 09:03
 
Fecha de Ingreso: septiembre-2008
Mensajes: 36
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: cookies

Alvin.
Las cookies las tengo para la funcionalidad de recordar usuario y contraseña.
Así que al hacer logout lo que tengo que hacer es eliminar la sesion y la cookie (en el caso de que se haya marcado la opción de memorizar usuario).
El problema es como he explicado antes que la cookie no me la elimina.
Haber si me podéis echar una mano.
  #4 (permalink)  
Antiguo 19/09/2008, 10:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: cookies

Lo que tienes que hacer es poner la cookie con un tiempo pasado setcookie('usuario', '', time() - 3600);

Con eso borras la cookie.

Saludos.
  #5 (permalink)  
Antiguo 19/09/2008, 11:34
 
Fecha de Ingreso: septiembre-2008
Mensajes: 36
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: cookies

Buenas Gatorv, que tal?
Entonces la función unset borra las variables, pero las cookies no las elimina realmente?

Otra cosa. En la instrucción:
setcookie('usuario', '', time() - 3600);

¿poniendo en el tiempo -1, daría igual?. Si no es así te agradecería una explicación.
Saludos.
  #6 (permalink)  
Antiguo 19/09/2008, 12:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: cookies

Es en teoria lo mismo, pero para mayor seguridad pon un tiempo mas atras para que el navegador borre la cookie mas rapidamente.

La función unset como bien dices solamente borra las variables, las cookies no se pueden borrar con unset porque no se guardan en el servidor, si no en el cliente, el explorador es el encargado de borrarlas.

Saludos.
  #7 (permalink)  
Antiguo 20/09/2008, 06:12
 
Fecha de Ingreso: septiembre-2008
Mensajes: 36
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: cookies

GatorV, gracias por la explicación. Ahora me ha quedado claro.
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 21:52.