我需要一个帮助来在zend框架2中创建cookie。
我无法弄清楚实现它的正确方法。我尝试使用Zend Http Client documentation中的代码创建cookie对象并进行分配。
这不会给我错误,所以我认为已经创建了cookie,但我无法在其中分配到期时间,以及如何获取我创建的这两个cookie变量数据并检查是否这个cookie存在。
我需要这方面的帮助,如果我编码错了那么请告诉我如何创建一个cookie的代码,然后检查它是否存在然后从中获取值?
答案 0 :(得分:1)
这是我要创建的代码,这可能有助于其他人使用zend framework 2 =>
$cookie1 = new \Zend\Http\Header\SetCookie('emailcookie', $email, time() + (((30*24)*60)*60));
$cookie2 = new \Zend\Http\Header\SetCookie('passwordcookie', $password, time() + (((30*24)*60)*60));
$this->getResponse()->getHeaders()->addHeader($cookie1);
$this->getResponse()->getHeaders()->addHeader($cookie2);
// For unsetting cookie:
$getcookie=$request->getCookie(); // returns object of Zend\Http\Header\Cookie
$chkemailcookieexist=$getcookie->offsetExists('emailcookie');
$chkpasswordcookieexist=$getcookie->offsetExists('passwordcookie');
// var_dump($chkemailcookieexist);
$prevdatetime=strtotime('-1 day', strtotime(date('Y-m-d')));
if($chkemailcookieexist)
{
$cookie1 = new \Zend\Http\Header\SetCookie('emailcookie', $email,$prevdatetime);
$this->getResponse()->getHeaders()->addHeader($cookie1);
}
// var_dump($chkpasswordcookieexist);
if($chkpasswordcookieexist)
{
$cookie2 = new \Zend\Http\Header\SetCookie('passwordcookie', $password, $prevdatetime);
$this->getResponse()->getHeaders()->addHeader($cookie2);
}
答案 1 :(得分:0)
您可以使用SetCookie标题类(Zend\Http\Header\SetCookie)。例如,在您的控制器中:
$cookie = new SetCookie('cookieName', 'cookieValue', time() + 60 * 60 * 24 * 1);
$this->getResponse()->getHeaders()->addHeader($cookie);
检查类构造函数,可以设置所有需要的标志。
然后你可以从 Zend \ Http \ Request 中读取cookie,例如在控制器中:
$cookieValue = $this->getRequest()->getCookie()->cookieName;
其中getCookie方法返回 Zend \ Http \ Header \ Cookie ,它是ArrayObject并包含来自请求的所有cookie。