我正在尝试使用Cookie和Zend Framework 1.10。这是我的代码:
$zendCookie = new Zend_Http_Cookie('foo', 'bar', 'localhost', time() + 60 * 60 * 24 * 30);
$client = new Zend_Http_Client();
$client->setCookie($zendCookie);
但是没有存储cookie。我用Firecookie Firefox的扩展程序检查了它。 怎么了?
答案 0 :(得分:1)
即使使用php的setcookie(),我也遇到了同样的问题,但设置域字段为空。虽然如果域字段为空,Zend_Http_Cookie()将抛出异常。
Cookie不能与我的localhost的虚拟主机
一起使用setcookie ( 'FOO', 'cookie content', 0, '/', 'myProjectSiteVHost', true, true);
将域字段设置为空 - 存储Cookie!
setcookie ( 'FOO', 'cookie content', 0, '/', '', true, true);
文档:setcookie()
答案 1 :(得分:0)
Localhost使用cookie做了一些奇怪的事情。
我会设置一个带有伪服务器名称的虚拟主机,并将其作为主机文件中的条目并将其指向127.0.0.1
IE:
<VirtualHost *:80>
ServerName test.dev
#(other required / normal items here)
</VirtualHost>
然后在/ etc / hosts(或C:\ Windows \ System32 \ drivers \ etc \ hosts)中添加:
127.0.0.1 test.dev
然后你可以通过调用test.dev在本地访问应用程序,你可以使用它代替“localhost”作为cookie,它不应该像localhost那样搞乱cookie。您可以通过localhost cookies here找到更多关于我所谈论的信息。
答案 2 :(得分:0)
Cookies on localhost with explicit domain
我认为问题是因为在域名之前缺少句号/句号,即“.domain.com”只有部分浏览器会在没有前导点的域名之外。