Zend Framework 1.10:不存储Cookie

时间:2010-08-13 15:40:09

标签: php zend-framework cookies zend-http-client

我正在尝试使用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的扩展程序检查了它。 怎么了?

3 个答案:

答案 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”只有部分浏览器会在没有前导点的域名之外。