Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con el borrado de cookies

Estas en el tema de Problema con el borrado de cookies en el foro de PHP en Foros del Web. Resulta que parece que borro cookies y no las borro a la vez me explico. Tengo en mi aplicación principal un boton para desconectar al ...
  #1 (permalink)  
Antiguo 09/06/2014, 14:39
 
Fecha de Ingreso: abril-2014
Mensajes: 13
Antigüedad: 10 años
Puntos: 0
Problema con el borrado de cookies

Resulta que parece que borro cookies y no las borro a la vez me explico. Tengo en mi aplicación principal un boton para desconectar al usuario, que basicamente envia a mi archivo "logout.php" :
Código PHP:
    echo "Valor de las cookies antes del borrado";
    
var_dump($_COOKIE);
    foreach (
$_COOKIE as $nombrecookie => $valor) {
        unset(
$_COOKIE[$nombrecookie]);//Elimina el campo PHPSESSID
        
setcookie($_COOKIE[$nombrecookie],"",(time()-3600));//Vacía las cookies
    
}
    echo
"<br/><br/>Valor de las cookies despues del borrado";
    
var_dump($_COOKIE);
    
//header("location: index.php?a=cookiesdestroyed"); 
El archivo original es sin los var_dump ni los echo, y con la linea de header sin comentarios.
El caso es que me muestra lo siguiente:
Valor de las cookies antes del borrado array(3) { ["nombre"]=> string(11) "encuestador" ["tipo"]=> string(1) "C" ["PHPSESSID"]=> string(0) "" }

Valor de las cookies despues del borrado array(0) { }

Es decir.... parece que SI se han borrado mis cookies. Pero al redirigirme a la pagina los valores en las cookies se mantienen, y la aplicación sigue reconociendo al mismo usuario.

Quiero hacerlo con cookies, con sesiones ya conseguí que me funcionase. Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 09/06/2014, 14:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con el borrado de cookies

¿Si sabes que al igual que las sesiones las cookies requieren que NO ENVÍES ninguna salida antes?

Además las cookies dependen del navegador para que se eliminen efectivamente porque las cookies son una recurso del navegador y no del servidor, es decir, aunque las borres no desaparecen en la misma petición, deberás esperar hasta la siguiente petición para que desaparezcan, etc.

Eso todos lo saben, te sugiero leer el manual para que te enteres.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/06/2014, 15:05
 
Fecha de Ingreso: abril-2014
Mensajes: 13
Antigüedad: 10 años
Puntos: 0
Respuesta: Problema con el borrado de cookies

Lo siento, pero no te entendí. ¿A que te refieres con que no envie ninguna salida antes?
Ya se que las cookies dependen del navegador. Si con el manual hubiera encontrado una respuesta no hubiera buscado ayuda aqui.
Me gustaría que alguien me ofreciera alguna ayuda en vez de un "leete el manual". Gracias
  #4 (permalink)  
Antiguo 09/06/2014, 15:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con el borrado de cookies

Cita:
¿A que te refieres con que no envie ninguna salida antes?
Simple:
Código PHP:
Ver original
  1. // MAL
  2. echo "aquí imprimo algo";
  3.  
  4. setcookie(...);

Ahora, claro que en el manual se explican muchas cosas al respecto, sólo que no has sabido leer:

Cita:
Las cookies no se volverán visibles hasta la próxima carga de la página en la que debieran serlo. Para probar si se ha creado correctamente una cookie, se debe buscar la cookie en alguna página cargada posteriormente y antes que la cookie expire. El tiempo de expiración se establece con el parámetro expire. Una forma sencilla de verificar la existencia de cookies es invocando print_r($_COOKIE);.

Las cookies deben ser borradas usando los mismos parámetros con que fueron creadas. Si el argumento del valor es un string vacío o FALSE, y todos los demás argumentos coinciden con una llamada anterior a setcookie, entonces la cookie con el nombre especificado será eliminada del cliente remoto. Internamente ésto se logra estableciendo el valor a 'deleted' y el tiempo de expiración a un año atrás.
Así que lo mejor es que leas: http://www.php.net/manual/es/function.setcookie.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 09/06/2014, 15:20
 
Fecha de Ingreso: abril-2014
Mensajes: 13
Antigüedad: 10 años
Puntos: 0
Respuesta: Problema con el borrado de cookies

Dije que tanto los var_dump como los echo no es de mi archivo original, solo los usé para ver como se estaba comportando mi programa.
Código PHP:
Ver original
  1. foreach ($_COOKIE as $nombrecookie => $valor) {
  2.         unset($_COOKIE[$nombrecookie]);
  3.         setcookie($_COOKIE[$nombrecookie],"",(time()-3600));
  4.     }
  5. header("location: index.php?a=cookiesdestroyed");

Con ese codigo tengo el mismo problema. Y claro que he probado a recargar la página.
El var_dump hace algo muy parecido a print_r($_COOKIE); solo que te da algo mas de información.
Como puedes ver en mi codigo estoy llamando a la función con el mismo nombre y el segundo mostrar me demuestra que si que se me estaba borrando el contenido.
  #6 (permalink)  
Antiguo 09/06/2014, 16:09
 
Fecha de Ingreso: abril-2014
Mensajes: 13
Antigüedad: 10 años
Puntos: 0
Respuesta: Problema con el borrado de cookies

Los errores mas tontos son los mas complicados de encontrar.
Código PHP:
Ver original
  1. <?php
  2.     foreach ($_COOKIE as $nombrecookie => $valor) {
  3.         setcookie($nombrecookie,"", (time()-3600));
  4.     }
  5.     header("location: index.php?a=cookiesdestroyed");
  6. ?>
Tanto si le pongo salidas como si no funciona estupendamente.
El problema era de sintaxis al usar "setcookie".
Yo no me di cuenta y es culpa mia, despues de darle muchas vueltas no vi lo mas sencillo. Pero cuando uno pide ayuda creo que antes de responder lo minimo que podrian hacer algunos es leer lo que se ha escrito, en vez de dar una respuesta aleatoria con una actitud provocativa.
  #7 (permalink)  
Antiguo 09/06/2014, 16:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con el borrado de cookies

Cita:
Iniciado por Roxmorf Ver Mensaje
[...] Pero cuando uno pide ayuda creo que antes de responder lo minimo que podrian hacer algunos es leer lo que se ha escrito, en vez de dar una respuesta aleatoria con una actitud provocativa.
El asunto es que es obligación del usuario que hace la pregunta revisar varias veces su código antes de siquiera publicarlo.

Así nos ahorramos el sarcasmo y respuestas de ese estilo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 10/06/2014, 07:16
 
Fecha de Ingreso: abril-2014
Mensajes: 13
Antigüedad: 10 años
Puntos: 0
Respuesta: Problema con el borrado de cookies

Habia revisado mi codigo mas que de sobra, no como otros que ni siquiera lo miran y se creen con derecho a responder
Si no has tenido ni idea de como arreglarlo no vengas aqui de listillo con cosas como "es para que lo resolvieras tu solo, si yo ya lo sabía" (ya claro).
Hay otros usuarios que si intentan ayudar a la gente, por favor si no quieres contribuir mejor no molestes la proxima vez. Gracias por mantenerte al margen en futuros casos.

Etiquetas: borrado, cookies
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 15:58.