Estoy tratando de escribir código PHP para eliminar todas las cookies de usuario en mi dominio.No se pueden eliminar las cookies que se establecieron en JavaScript en el servidor
Esto es lo que tengo:
<?php
$domain = 'www.example.com';
$deleteExpiration = time() - 60*60*24*365*10; // 10 years ago
foreach (array_keys($_COOKIE) as $cookie) {
setcookie($cookie, 0, $deleteExpiration, '/', $domain);
}
La ejecución de este código en http://www.example.com/delete_cookies.php borra todas las cookies que se establecieron en el servidor, pero no las cookies que se establecieron en JavaScript.
He verificado mediante el diálogo Cookies de Firefox que las cookies problemáticas son de (path = /; domain = www.example.com). El uso de cabeceras HTTP en directo, puedo ver que la siguiente cabecera se envía:
Set-Cookie: CookieName=0; expires=Fri, 12-Mar-1999 19:36:15 GMT; path=/; domain=www.example.com
así que creo que el comando setcookie está funcionando como se esperaba. Firefox simplemente no está cumpliendo con la solicitud.
Una cosa adicional que he notado es que si me puse una cookie con domain=www.example.com
en el servidor, entonces aparece en el cuadro de diálogo de cookies Firefox con domain=".www.example.com"
, pero si fijo la siguiente galletas utilizando código JavaScript a continuación, el punto inicial es no añadido.
¿Qué estoy haciendo mal? ¿Cómo puedo eliminar estas cookies?
http://stackoverflow.com/a/25967822/1642018 – AMB
Puede encontrar ['$ cookie-> delete()'] (https://github.com/delight-im/PHP-Cookie/blob/ 004cde69ec840e65c15275e09b92ecb1da06f357/src/Cookie.php # L173) útil, como se encuentra en [esta biblioteca independiente] (https://github.com/delight-im/PHP-Cookie). – caw