Gostaria de saber se posso excluir todos os cookies do meu site quando um usuário clicar em logout, porque usei essa função para excluir cookies, mas não está funcionando corretamente:
setcookie("user",false);
Existe uma maneira de excluir os cookies de um domínio no PHP?
Respostas:
PHP setcookie ()
Retirado dessa página, isso cancelará todos os cookies do seu domínio:
http://www.php.net/manual/en/function.setcookie.php#73484
fonte
HTTP_COOKIE
valor seria melhor do que repetir o$_COOKIE
array. Você tem algum motivo para isso? Para mim, parece apenas mais trabalho (duplo) para o analisador.Ainda melhor é lembrar (ou armazená-lo em algum lugar) quais cookies são definidos com seu aplicativo em um domínio e excluí-los diretamente.
Dessa forma, você pode ter certeza de excluir todos os valores corretamente.
fonte
setcookie( $key, FALSE );
?! (veja a seção de notas em php.net/manual/en/function.setcookie.php )/
você colocousetcookie
?/
é o caminho do cookie. Você precisa configurá-lo para que possa remover os cookies do domínio, caso contrário, ele é configurado para o caminho atual e afeta apenas aqueles que são definidos para o caminho atual.Eu concordo com algumas das respostas acima. Eu recomendaria apenas substituir "time () - 1000" por "1". Um valor "1" significa 1º de janeiro de 1970, o que garante a expiração de 100%. Portanto:
fonte
certifique-se de chamar a função setcookie antes que qualquer saída aconteça em seu site.
além disso, se seus usuários estiverem desconectando, você também deve excluir / invalidar suas variáveis de sessão.
fonte
Quando você altera o nome de seus cookies, você também pode excluir todos os cookies, mas manter um:
Também baseado nesta resposta PHP
fonte
As respostas fornecidas não resolveram meu problema,
Não:
Meu script tem, veja.
Não é a solução mais bonita / segura / ótima, então use-a somente se você não souber o caminho do cookie e / ou o domínio do cookie. Ou use a ideia para criar sua versão.
fonte
Você deve estar ciente de que várias ferramentas de rastreamento, como o Google Analytics, também usam cookies em seu domínio e você não deseja excluí-los, se quiser ter dados corretos no GA.
A única solução que consegui fazer funcionar foi definir os cookies existentes como nulos. Não consegui excluir os cookies do cliente.
Portanto, para desconectar um usuário, eu uso o seguinte:
Claro que isso não exclui TODOS os cookies.
fonte
0
argumento significa que o cookie nem mesmo é criptografado em trânsito.Todas as respostas anteriores ignoraram que o
setcookie
poderia ter sido usado com um domínio explícito. Além disso, o cookie pode ter sido definido em um subdomínio superior, por exemplo, se você estava em umfoo.bar.tar.com
domínio, pode haver um cookie ativadotar.com
. Portanto, você deseja cancelar a definição de cookies para todos os domínios que podem ter descartado o cookie:fonte
Use a função para limpar os cookies:
Se você passar
true
, ele limpa ossession
dados, caso contrário, os dados da sessão são preservados.fonte
Eu sei que esta pergunta é antiga, mas esta é uma alternativa muito mais fácil:
Mas tenha cuidado! Ele apagará TODOS os cabeçalhos, incluindo Cookies, Sessão, etc., conforme explicado nos documentos .
fonte
fonte