Cookie, para que não se repita mais.

Aprender com o tempo, é uma metafóra não se esqueça disso. Ninguem aprende com o tempo, nem o tempo aprende conosco. O tempo passa e se nós não estivemos na roda ele vai girar  perdemos a vez e o conhecimento se não treinarmos e nem estudarmos.
Aprender com o tempo é: você que está na roda, girando igual a todo mundo, mantendo atividades a qual seja necessário usar a mente de forma a resolver quebra-cabeças, aprendendo com os movimento, acertando e errando.

Pois bem, creio que o setcookie seja uma função típica e comum de usuário do PHP. Usando essa função que perdi, por distração, dois dias de trabalho o que acho ser um absurdo. Abaixo segue um cenário a qual eu me encontrava e a solução encontrada.

Vou dar uma passada no setcookie:

setcookie(_nome [, _valor , _data_expiracao , _path , _domain, _secure, _httponly ])

Exceto o _nome, todos os outros campos são opcionais.

_nome - nome do cookie
_valor - valor que o cookie vai ter, se nada for definido ele será string vazia ( "" )
_data_expiracao - data em que o cookie vai expirar
_path - local onde o cookie vai estar disponivel [ rs ]
_domain - dominio onde o cookie vai estar disponivel ( .thiagosantos.com [ todo os subdominios ], www.thiagosantos.com [ somente no www ] ), se o domain não for definido vai ser utilizado o dominio que fez a requisicao do cookie.
_secure - true ou false, o cookie só sera transmitido via HTTPS
_httponly - muito bacana, o cookie fica "invisivel" para o javasxcript a partir do PHP 5.2

Cenário, a partir da '/' eu fazia uma requisicao por ajax para o caminho '/buu/foo' que fazia o que tinha de ser feito e depois setava um cookie. Quando eu atualizava a página a informação que deveria aparecer na página inicial, simplesmente não aparecia. Dai achei que era algum problema comigo, e implementei um retorno que definia o cookie pelo javascript localizado no '/'.
Então eu tinha dois pontos que setavam o mesmo cookie um pelo PHP e o outro pelo Javascript. E quando eu tentava apagar o cookie pelo javascript a informação simplesmente sumia, como esperado. Mas quando fazia uma nova requisicao por ajax ao '/buu/foo' todas as informações do cookie antigo que haviam sido apagadas pelo Javascript simplesmente voltavam!!
Ooohhh!!!
Já deu pra entender o que eu tinha esquisito quando defini o cookie no PHP né?
Éeeehh isso mesmo esqueci de definir o 'path' no setcookie, quando eu apagava o cookie pelo Javascript, eu apagava o mesmo que eu tinha definido antes só que para '/' , mas não apagava o que eu havia setado para o PHP em '/buu/foo' ... rs
Então é isso, defini o path no PHP para '/' e removi a implementação de cookie por Javascript, umas vez que não se vazia mais necessário.
E tudo mágicamente começou a funcionar como o esperado.

Mas uma gota de experiência deixada no blog.

Até mais,

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *