Eu tenho uma pergunta sobre cookies no cakephp. Eu crio um cookie no cakephp view com sucesso, e eu escrevi uma função javascript para deletar os cookies se a página recarregar, e essa função é deletada com sucesso.
Mas depois que os cookies são excluídos, os mesmos cookies não podem mais ser criados. Por que isso acontece?
Este é o meu código que usei para criar esses cookies:
$isiCookies=$awb["Awb"]["id"]."^".$awb["Awb"]["awb_number"]."^".$companies[$awb["Contract"]["company_id"]]."^".$awb["Address"]["address"]."^".$types[$awb["ContractDetail"]["content_type_id"]]."^".$awb["Awb"]["colie"]."^".$kilo."^".$manifestDetails[$awb["Awb"]["id"]];
if(!isset($_COOKIE["manifest_courier"]))
{
setcookie("manifest_courier", $isiCookies, $date_of_expiry, "/");
}
else
{
setcookie("manifest_courier", rawurldecode($_COOKIE["manifest_courier"])."*".$isiCookies, $date_of_expiry, "/" );
}
E esta é a função javascript que eu usei para excluir os cookies:
$(window).unload(function() {
Cookies.erase("manifest_courier");
});
Por favor, me diga por que os cookies não são criados se a página for recarregada. Obrigado pela ajuda.
Respostas:
0 para resposta № 1Você não precisa fazer tudo em visualizações. Primeiramente, verifique se o componente Cookie está incluído no controlador.
var $components = array("Cookie");
Então, na sua função,
$isiCookies = $awb["Awb"]["id"]."^".$awb["Awb"]["awb_number"]."^".$companies[$awb["Contract"]["company_id"]]."^".$awb["Address"]["address"]."^".$types[$awb["ContractDetail"]["content_type_id"]]."^".$awb["Awb"]["colie"]."^".$kilo."^".$manifestDetails[$awb["Awb"]["id"]];
if($this->Session->check("manifest_courier"))
{
$this->Cookie->write("manifest_courier",$isiCookies,false,$date_of_expiry);
}else{
$this->Cookie->write("manifest_courier",rawurldecode($_COOKIE["manifest_courier"])."*".$isiCookies,false,$date_of_expiry);
}
Na exibição, use esse Js para excluir o cookie, se ele ainda existir após a atualização.