使用Zend Framework获取Cookie值

时间:2010-09-14 07:57:44

标签: http zend-framework cookies

警告:非静态方法Zend_Controller_Request_Http :: getCookie()不应该静态调用..

我尝试以下方法来获取Cookie值:

$cookieData = Zend_Controller_Request_Http::getCookie($key, $default);

有更好的方法吗?

2 个答案:

答案 0 :(得分:17)

getCookie()方法不是静态的,应该在对象上调用。

我相信这段代码来自你的控制器,所以它应该基本上看起来像

$request = $this->getRequest();
$cookieData = $request->getCookie('someCookie', 'default');

答案 1 :(得分:2)

这是一个轻微的侧面说明,但它可能很好地帮助避免长时间没有结果的时间。根据我的经验,在zf1和其他框架中无法从$ _COOKIE中检索值时出现的问题主要是因为setCookie很容易使用,忘记添加路径和域,如下所示:

setcookie('cookieName','cookieValue',$ finalExpirationTime,'/','。yourdomain.com');

而是这样做:

setcookie('cookieName','cookieValue',$ finalExpirationTime);

这真的很烦人,尤其是在使用ip而不是实际域的Windows上工作时。要注意的另一件事是域前面的点(。)。如手册中所述:旧版浏览器仍然实现已弃用的»RFC 2109可能需要领先。匹配所有子域。

希望这有帮助