我想设置Cookie但无法设置
我也使用了这个public $components = array('Cookie');
我在UsersController中使用$this->Cookie->write('name', 'Larry');
在另一个控制器echo $this->Cookie->read('name');
但没有结果
请建议如何在蛋糕php中设置cookie
感谢Sanjib
答案 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 cookies 和 getting cookies 的文档 .