Sto tentando di scrivere codice PHP per eliminare tutti i cookie utente sul mio dominio.Impossibile cancellare i cookie impostati in JavaScript sul server
Ecco cosa ho ottenuto:
<?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);
}
L'esecuzione di questo codice su http://www.example.com/delete_cookies.php elimina tutti i cookie impostati sul server, ma non i cookie che sono stati fissati in JavaScript.
Ho verificato utilizzando la finestra di dialogo dei cookie di Firefox che i cookie problematici provengono effettivamente da (percorso = /; dominio = www.esempio.com). Utilizzando le intestazioni HTTP in diretta, posso vedere che la seguente intestazione viene inviato:
Set-Cookie: CookieName=0; expires=Fri, 12-Mar-1999 19:36:15 GMT; path=/; domain=www.example.com
quindi credo che il comando setcookie funziona come previsto. Firefox non sta rispettando la richiesta.
Una cosa aggiuntiva che ho notato è che se ho impostato un cookie con domain=www.example.com
sul server, allora è elencato nella finestra di cookie di Firefox con domain=".www.example.com"
, ma se ho impostato il seguente biscotto utilizzando il codice JavaScript, allora il punto iniziale è non aggiunto.
Cosa sto sbagliando? Come posso cancellare questi cookie?
http://stackoverflow.com/a/25967822/1642018 – AMB
È possibile trovare ['$ cookie-> delete()'] (https://github.com/delight-im/PHP-Cookie/blob/ 004cde69ec840e65c15275e09b92ecb1da06f357/src/Cookie.php # L173) utile, come trovato in [questa libreria autonoma] (https://github.com/delight-im/PHP-Cookie). – caw