Phalcon - 获取加密的cookie值

时间:2014-08-30 20:14:07

标签: php cookies phalcon

我尝试在Phalcon中设置并获取cookie。我在DI中注册了cookie 像这里http://docs.phalconphp.com/en/latest/reference/cookies.html

$di->set('cookies', function() {
    $cookies = new Phalcon\Http\Response\Cookies();
    $cookies->useEncryption(true);
    return $cookies;
});

$di->set('crypt', function() {
    $crypt = new Phalcon\Crypt();
    $crypt->setKey('#_+//*(*&eA|;76$');
    return $crypt;
});

在Controller中我设置了这样的cookie:

$this->cookies->set('test', 'test', time()+600);

之后我想获得cookie:

$val = $this->cookies->get('test');

第一个扼杀事物 - 如果我尝试打印我的$val我得到的不是这个变量的值而是奇怪的对象(Phalcon\Http\Cookie Object)。 第二个奇怪 - 如果我使用加密,下一个结构将为我返回false

if ($val == 'test'){
    return true;
} else {
    return false;
}

如果我不使用加密counstruction返回true但是如果我尝试打印没有加密设置的$val我得到的不是值,而是相同的奇怪对象。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

简单。 $this->cookies->get('test')会向您返回cookie object中所述的documentation。你应该得到这样的价值:

$this->cookies->get('test')->getValue();

所以,你可以设置你想要的任何东西,但是当你检索它时,它会返回Phalcon\Http\Cookie有很多方法。不一致,但显然应该让你的生活更轻松。