如何在cakephp中1分钟后破坏cookie?

时间:2017-02-10 12:21:09

标签: php cakephp cookies cakephp-3.x

我是cakephp 3.0的新手。我已成功创建了一个cookie,但我想在一分钟后销毁该cookie。到目前为止我做了: -

public function register_cookie(){
    $data = "Hello world!";
    $this->Cookie->write('dataFetch', $data, true, time() + (60 * 1));
}
public function getcookie() {
        $cookiedata = $this->Cookie->read('dataFetch');
        echo $cookiedata;
}

但是当我在 getCookie 功能中一分钟后,它仍会打印,即#34; Hello World" 我希望一分钟后cookie过期。 在此先感谢:)

2 个答案:

答案 0 :(得分:0)

首先,您应该检查Cookie到期日期是否设置正确。例如,在Chrome中(在inspect元素触发控制台栏之后),转到Application \ Storage \ Cookies \ Localhost并检查cookie。

在cakephp中,您可以删除带有

的cookie
$this->Cookie->delete('bar');

此外,您可以通过将过期日期设置为过去的时间() - 1

来销毁Cookie

答案 1 :(得分:0)

在cakephp 3.x中,文件说你可以拥有这些参数

CookieComponent::write(mixed $key, mixed $value = null)

但在cakephp 2.x中,它用来取这些参数

CookieComponent::write(mixed $key, mixed $value = null, boolean $encrypt = true, mixed $expires = null)

要设置到期时间,您必须像这样设置配置

$this->Cookie->config([
    'expires' => '+10 days',
]);

所以你的代码就像这样

public function register_cookie(){
    $this->Cookie->config([
        'expires' => '+1 minute',
    ]);
    $this->Cookie->configKey('dataFetch', 'encryption', false);
    $data = "Hello world!";
    $this->Cookie->write('dataFetch', $data);
}