如何在cakephp中设置cookie

时间:2014-03-28 07:29:16

标签: cakephp-2.0

我想设置Cookie但无法设置 我也使用了这个public $components = array('Cookie');

我在UsersController中使用$this->Cookie->write('name', 'Larry'); 在另一个控制器echo $this->Cookie->read('name');

上回显

但没有结果

请建议如何在蛋糕php中设置cookie

感谢Sanjib

4 个答案:

答案 0 :(得分:2)

您似乎将本教程用于Cookie:http://book.cakephp.org/2.0/en/core-libraries/components/cookie.html

您可能错过的是设置cookieComponent,这当然是必要的,以便您使用cookie。

public $components = array('Cookie');

public function beforeFilter() {
    parent::beforeFilter();
    $this->Cookie->name = 'baker_id';
    $this->Cookie->time = 3600;  // or '1 hour'
    $this->Cookie->path = '/bakers/preferences/';
    $this->Cookie->domain = 'example.com';
    $this->Cookie->secure = true;  // i.e. only sent if using secure HTTPS
    $this->Cookie->key = 'qSI232qs*&sXOw!adre@34SAv!@*(XSL#$%)asGb$@11~_+!@#HKis~#^';
    $this->Cookie->httpOnly = true;
    $this->Cookie->type('aes');
}

答案 1 :(得分:0)

如果你发表评论

$this->Cookie->type('aes');

你应该发现问题已经消失。

答案 2 :(得分:0)

在AppController中src\Controller\AppController.php

var $components = array('Cookie');

或者您可以使用原始PHP设置和检索cookie。

答案 3 :(得分:0)

对于使用 CakePHP 4.x 的人:您现在需要为 Response 对象设置一个 cookie 并通过 Request 对象获取它,而不是使用 cookie 组件:

// Create cookie and set it to the Response object
$cookie = (new Cookie('name'))
    ->withValue('Larry');
$this->setResponse($this->getResponse()->withCookie($testCookie));
// Fetch a cookie's value from the Request object
$name = $this->getRequest()->getCookie('name'); // 'Larry'

请注意,在使用 debug() 或其他输出(例如 echo)时设置 cookie 将不起作用,因为如果已发送任何输出,则无法发送标头。您也应该收到有关此的警告。

有关详细信息,请参阅 this answer,或查看有关 setting cookiesgetting cookies 的文档 .