我如何使用Zend_Http_Cookie设置和读取cookie?
我想设置这样的cookie:
$cookie = new Zend_Http_Cookie('TestCookie','TestValue','localhost.com')
但未生成Cookie。我是如何用Zend读取cookie的?
由于
答案 0 :(得分:20)
据我所知,Zend Framework中没有“setCookie”类。只需使用“普通”php:
setcookie('cookieName', 'value', 'lifetime', 'path', 'domain');
要阅读Cookie,您可以使用Zend_Controller_Request_Http();
作为示例:
$request = new Zend_Controller_Request_Http();
$myCookie = $request->getCookie('cookieName');
答案 1 :(得分:4)
对于Zend 1.12, 是一种为响应对象设置cookie的方法。
手册中该部分的链接如下。我还附上了他们的例子以防页面消失。
$this->getResponse()->setRawHeader(new Zend_Http_Header_SetCookie(
'foo', 'bar', NULL, '/', 'example.com', false, true
));
或
$cookie = new Zend_Http_Header_SetCookie();
$cookie->setName('foo')
->setValue('bar')
->setDomain('example.com')
->setPath('/')
->setHttponly(true);
$this->getResponse()->setRawHeader($cookie);
使用Zend的对象和类非常重要,这样在创建测试时就不会遇到问题;)
答案 2 :(得分:2)
来自Zend的github issue关于多个cookie:
$setCookieHeader = new Zend_Http_Header_SetCookie('othername1', 'othervalue1');
$appendCookie = new Zend_Http_Header_SetCookie('othername2', 'othervalue2');
$headerLine = $setCookieHeader->toStringMultipleHeaders(array($appendCookie));
$this->getResponse()->setRawHeader($headerLine);
答案 3 :(得分:1)