Cakephp cookie总是会自动删除

时间:2011-08-09 04:21:46

标签: cakephp cookies

任何人都有一个想法,为什么Cakephp中的cookie总是会在函数结束后自动删除?

我尝试用函数abc编写一个cookie,其中包括:

$this->Cookie->write('referal', $ref);

在此之前,在过滤器之前的app控制器中,我已按如下方式初始化cookie:

$this->Cookie->name = 'renttycoons';
$this->Cookie->time = 604800; // or '1 week'
$this->Cookie->path = '/';
$this->Cookie->domain = 'rent.local';
$this->Cookie->key = 'qSI232qs*&sXOw!';

但是一旦函数执行结束,cookie就会变空。当我尝试在函数abc结束之前读取cookie时,它就在那里。无论如何都没有删除cookie方法。

1 个答案:

答案 0 :(得分:2)

是的,因为Cake in Cake的工作方式:当你使用Cookie-> write()时,它不会直接写入cookie,因为cookie位于用户的浏览器中。只有在视图呈现时才会发送您编写的cookie。因此,当您重定向时,(我猜测cookie不会被发送并因为视图未呈现而被刷新)新请求具有旧的cookie数据。

如果要在蛋糕应用程序中保留一些共享数据,并且每个访问者都是唯一的,请使用SessionComponent。它看起来与Cookie几乎相同:$this->Session->write('referal', $ref);$this->Session->read('referal');