Foros del Web » Programando para Internet » PHP »

Forma correcta para eliminar cookies

Estas en el tema de Forma correcta para eliminar cookies en el foro de PHP en Foros del Web. Bien all supongamos que éste es el cookie: Código PHP: setcookie ( "me" ,  "valor" ,  time () +  3600 );  Código PHP: //Al ejecutar unset, el cookie sigue siendo definido unset( $_COOKIE ...
  #1 (permalink)  
Antiguo 11/12/2008, 17:17
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 5 meses
Puntos: 56
Forma correcta para eliminar cookies

Bien all supongamos que éste es el cookie:
Código PHP:
setcookie("me""valor"time() + 3600); 
Código PHP:
//Al ejecutar unset, el cookie sigue siendo definido
unset($_COOKIE["me"]);
//Al ejecurar el coockie con 1 parámetro lo sigue siendo
setcookie("me"); 
//Al poner el tiempo del cookie negativo se elimina con éxito
setcookie("me""valor"time() + 3600); 
Mi duda es por que no funcionan las 2 primeras, según leí en otros temas eso tambien los elimina, pero cuando lo pruebo no rula, haber si me lo aclaran, Saludos y gracias!
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #2 (permalink)  
Antiguo 11/12/2008, 17:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Forma correcta para eliminar cookies

unset sirve para eliminar variables en tiempo de ejecucion y no borra la cookie.

Dado que IExploiter es muy inseguro lo mas recomendable es guardar la cookie con datos vacios: setcookie('nombre', '', time + 3600);
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 11/12/2008, 17:56
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 5 meses
Puntos: 56
Respuesta: Forma correcta para eliminar cookies

Lo que pasa que tengo que comprobar si el cookie esta definido, y quiero evitar hacer condiciones con valores en blanco.
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #4 (permalink)  
Antiguo 11/12/2008, 18:20
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Forma correcta para eliminar cookies

A ver, que tan dificil es hacer esto:
Código:
if(isset($_COOKIE['nombre'])) {
  $valor = $_COOKIE['nombre'];
  $cookie = ($valor != '') ? true : false;
} else {
  $valor = '';
  $cookie = false;
}
En el resto de tu script solo verificarias si $cookie es verdadero o falso antes de hacer cualquier cosa.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 12/12/2008, 08:11
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 5 meses
Puntos: 56
Respuesta: Forma correcta para eliminar cookies

Si no se q me pasa pero no me convence aún esas 2 líneas, me eh acostumbrado a escribir pocas líneas, pero quiero destruir totalmente el cookie sin dejar un valor en blanco. si pongo el cookie con tiempo negativo setcookie("me", "valor", time() - 3600); se borra, pero lo veo raro, quiero hacer algo semejante a unset($_COOKIE) de una ves por todas, gracias igual Triby x el consejo.
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #6 (permalink)  
Antiguo 12/12/2008, 09:01
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Forma correcta para eliminar cookies

Es como lo decís, se le pone el time en negativo, sin más. Si queres centralizar un "unset" de todas las cookies armate una función que haga un foreach sobre cookies y las setee a time negativo.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
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 19:26.