没有设置CakePHP Cookie

时间:2013-07-27 21:59:09

标签: cakephp cookies

我正在使用以下代码进行设置,然后在CakePHP中读取一个cookie。

public $components = array('Cookie');
public function beforeFilter(){
    parent::beforeFilter();
    $this->Cookie->name = 'saved_times';
    $this->Cookie->time = '1 year';
    $this->Cookie->domain = 'localhost';
    $this->Cookie->path = '/';
    $this->Cookie->httpOnly = false;
    $this->Cookie->key = '+%)asG_~s*SAr&bSIq34$@11qe@s!@v!@*(XSL#$XOw!a232d#HKis~#^';
    $this->Cookie->secure = false;

}
public function save_position($time){
    if($this->Auth->user('id')){
        //save to the database
        return true;
    }else{
        //set browser cookie
        $this->Cookie->write('time', $time);
        echo "set", $this->Cookie->read('time');
    }
}

public function read(){
    echo $this->Cookie->read('time'), "test";
    print_r($this->Cookie->read('time'));
}

问题在于,当我设置cookie时,我看到“设置”并且cookie值被回显,但是当我访问/read/时,我只看到“测试”而没有cookie值。此外,我在Chrome中使用Cookie查看器,但我只看到我的域CAKEPHP Cookie不是saved_times。我认为cookie甚至没有被设置,但我不知道为什么

1 个答案:

答案 0 :(得分:4)

事实证明,在呈现视图之前,cookie不会被设置。我没有查看我的save_position操作,因此显示了错误页面,但没有设置cookie。一旦我添加了save_position.ctp文件,一切正常。