Zend framework zend framework 2中的Cookie创建

Zend framework zend framework 2中的Cookie创建,zend-framework,cookies,zend-framework2,Zend Framework,Cookies,Zend Framework2,我需要一个在zend framework 2中创建cookie的帮助 我想不出正确的方法来实现它。我已经尝试创建cookie对象并使用源代码进行分配 这并没有给我错误,所以我假设已经创建了cookie,但我无法在其中分配过期时间,以及如何获取我创建的这两个cookie变量数据并检查此cookie是否存在 我需要这些方面的帮助,如果我编码错误,请向我展示如何创建cookie的代码,然后检查它是否存在,然后从中获取值?您可以使用SetCookie头类()。例如,在控制器中: $cookie = ne

我需要一个在zend framework 2中创建cookie的帮助

我想不出正确的方法来实现它。我已经尝试创建cookie对象并使用源代码进行分配

这并没有给我错误,所以我假设已经创建了cookie,但我无法在其中分配过期时间,以及如何获取我创建的这两个cookie变量数据并检查此cookie是否存在


我需要这些方面的帮助,如果我编码错误,请向我展示如何创建cookie的代码,然后检查它是否存在,然后从中获取值?

您可以使用SetCookie头类()。例如,在控制器中:

$cookie = new SetCookie('cookieName', 'cookieValue', time() + 60 * 60 * 24 * 1);
$this->getResponse()->getHeaders()->addHeader($cookie);
$cookieValue = $this->getRequest()->getCookie()->cookieName;
检查类构造函数,您可以在那里设置所有需要的标志

然后,您可以从Zend\Http\Request读取cookie,例如在控制器中:

$cookie = new SetCookie('cookieName', 'cookieValue', time() + 60 * 60 * 24 * 1);
$this->getResponse()->getHeaders()->addHeader($cookie);
$cookieValue = $this->getRequest()->getCookie()->cookieName;

其中getCookie方法返回Zend\Http\Header\Cookie,它是ArrayObject,包含来自请求的所有Cookie。

这是我要创建的代码,这可能对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);
//对于未设置的cookie:
$getcookie=$request->getcookie();//返回Zend\Http\Header\Cookie的对象
$chkemailcookieexist=$getcookie->offsetExists('emailcookie');
$chkpasswordcookieexist=$getcookie->offsetExists('passwordcookie');
//var_dump($chkemailcookieeexist);
$prevdatetime=strtotime('-1天',strtotime(日期('Y-m-d'));
如果($chkemailcookieexist)
{
$cookie1=new\Zend\Http\Header\SetCookie('emailcookie',$email,$prevdatetime);
$this->getResponse()->getHeaders()->addHeader($cookie1);
}
//变量转储($chkpasswordcookieexist);
如果($chkpasswordcookieexist)
{
$cookie2=new\Zend\Http\Header\SetCookie('passwordcookie',$password,$prevdatetime);
$this->getResponse()->getHeaders()->addHeader($cookie2);
}

您能否将您使用的确切代码添加到问题中,而不是手动链接?Hi@foozy i已使用此代码$cookies=new\Zend\Http\Client()$cookies->addCookie('emailcookie',$email)$cookies->addCookie('passwordcookie',$password);但是我无法在其中分配过期时间,以及如何获取我创建的这两个cookie变量数据并检查此cookie是否存在。Hi@lku如果以这种方式创建cookie,那么从cookie中获取数据并检查其是否存在的代码是什么,在zend framework 2Hi@lku中,谢谢我这么做,我从您的代码中了解到这很有帮助,您能告诉我在zend框架中取消设置cookie变量的代码吗2@Soumik:您需要发送过期日期在过去的相同cookie。浏览器将在下一个请求中删除该cookie。Hi@lku我们可以使用cookie类的任何未设置方法来完成此操作,实际上我正在使用cookie类的一些方法,但没有成功。将密码存储在cookie中真是个坏主意。Cookie易受攻击。即使密码是散列的,也是不安全的。是的,这是真的,那么你将如何实现rememeber me@lkuI。如果你有任何具体问题,最好再创建一个问题。但是关于这个主题有很多资源,例如本文: