【问题标题】:Cakephp cookie always get deleted automaticallyCakephp cookie 总是被自动删除
【发布时间】:2011-08-10 12:38:05
【问题描述】:

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

我尝试在函数 abc 中写一个 cookie,如下:

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

在此之前,在过滤器之前的应用控制器中,我已将 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 的方法。

【问题讨论】:

  • 你在哪里尝试读取 cookie?
  • 是的,在上面写一个cookie的函数之后,在它下面我把重定向到另一个函数,那个函数读取cookie。

标签: cakephp cookies


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 2011-08-05
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多