Foros del Web » Programando para Internet » PHP »

Problemas con Cookies

Estas en el tema de Problemas con Cookies en el foro de PHP en Foros del Web. Buenos Días Phperos !!! Verán, tengo un pequeño problemilla con las cookies. El caso es que tengo en una pagina la siguiente funcion: function crear{ ...
  #1 (permalink)  
Antiguo 11/12/2003, 06:35
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Problemas con Cookies

Buenos Días Phperos !!!

Verán, tengo un pequeño problemilla con las cookies. El caso es que tengo en una pagina la siguiente funcion:

function crear{
setcookie("nombre", "carlos", 0, "", 0, 0);
}

En otra pagina tengo:
echo $_COOKIE[nombre];
<a href='cerrar.php'>cerrar</a>

Y en cerrar.php:
setcookie("nombre");

El caso es que crear la cookie me la crea (Aun que despues voy a la carpeta c:\windows\cookies y no la veo por ningún lado), pero cuando doy a cerrar, la cookie sigue existiendo, no soy quien a eliminarla, ¿Alguien sabe por que no se elimina?.

Tambien probe a cambiarle el valor en cerrar.php, setcookie("nombre", "clavijo",...) pero tampoco me cambiaba el valor.

En fin, gracias por la ayuda que se ofrece por aqui, espero que puedan ayudarme. Saludos Cordiales.
__________________
Charlie.
  #2 (permalink)  
Antiguo 11/12/2003, 06:43
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

La respuesta esta en el manual (www.php.net/setcookie):
Cita:
Cookies must be deleted with the same parameters as they were set with. If the value argument is an empty string (""), and all other arguments match a previous call to setcookie, then the cookie with the specified name will be deleted from the remote client.
Es decir, para borrar una cookie, tienes que poner en el setcookie() todos los parametros que pusistes para crearla, con los mismos valores (excepto el valor). Asi que para borrar tu cookie:
Código PHP:
//Y en cerrar.php:
setcookie("nombre",""0""00); // los mismos parametros, los mismos valores 
Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 11/12/2003, 06:56
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Te agradezco tu colaboración Josemi, pero el problema lo sigo teniendo, eso ya lo había probado y tampoco funciona, lo curioso, es que si le digo al navegador que me elimine todos lso ficheros con o sin conexion, la cookie sigue existiendo hasta que reinicie le ordenador, tampoco me aparece en la carpeta c:\windows\cookies, ¿Sabes que es lo que puede pasar? ¿Tendra algo que ver en esto el php.ini?

Para mas información, tengo el apache 2.0 corribendo bajo windows 98 segunda edicion.

En fin, nuevamente gracias, y haber si pueden sacarme la duda esta.
__________________
Charlie.
  #4 (permalink)  
Antiguo 11/12/2003, 07:10
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Bueno, ahora que me fijo en el manual, como estas especificando un expire de 0, lo que realmente estas creando es una cookie "de sesion", que existe hasta que cierres todas las ventanas del navegador.

No estoy seguro, pero quizas puedes hacer:
Código PHP:
//Y en cerrar.php:
setcookie("nombre",""time() - 3600""00); // los mismos parametros, los mismos valores 
para que no sea mas una cookie de "sesion".

Suerte.

PD: Pongo entre comillas "sesion", porque no tiene nada que ver con las sesiones de PHP.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 11/12/2003, 07:37
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Muchas Gracias por tu ayuda.
__________________
Charlie.

Última edición por chcma; 11/12/2003 a las 07:43
  #6 (permalink)  
Antiguo 11/12/2003, 07:47
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Bueno, aqui el problema es que PHP no tiene control sobre el navegador. Como mucho puede indicar que destruya la cookie, pero no sabe cuando la destruira. Eso entra dentro de la idiosincrasia del navegador. Quizas el IExplorer es especialito y considera una "sesion" como el tiempo que esta encendido el ordenador.

Prueba a poner cuando creas la cookie un expire bastante lejano (time()+60*60*24*30, que son 30 dias). Puede que sea el navegador el que se lie con el significado de sesion.

Suerte.

PD: Para comprobar si es culpa del navegador, prueba tu pagina con otros navegadores (Mozilla, por ejemplo, si ahora usas IExplorer).
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 11/12/2003, 07:51
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Vaya, o soy muy rapido contestando o muy lento escribiendo. Con la edicion de tu ultimo mensaje, ¿quieres decir que has solucionado el problema?
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #8 (permalink)  
Antiguo 11/12/2003, 07:53
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Si, en cierto modo, todavía no he probado lo de eliminar la cookie, cambiando lo del expire por time()-3600, pero me imagino que me funcionara.

Lo de la cookie que se elimina cuando cierro el navegador si que funciona, no sé que haría yo antes, pero volvi a probar y si que tira. Ahora miraré lo de eliminarla yo manualmente.

Muchas Gracias.
__________________
Charlie.
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 20:25.