2010-08-13 64 views
0

我正在尝试使用Cookie和Zend Framework 1.10。这是我的代码:Zend Framework 1.10:Cookies不存储

$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

本地主机使用cookie做一些奇怪的事情。

我会建立一个伪服务器名称的虚拟主机,使这个在您的主机文件中的条目,并将其指向127.0.0.1

IE:

<VirtualHost *:80> 
    ServerName test.dev 
    #(other required/normal items here) 
</VirtualHost> 

然后在你的/ etc/hosts文件(或C:\ WINDOWS \ SYSTEM32 \ DRIVERS \ ETC \主机)您可以添加:

127.0.0.1  test.dev 

然后你就可以通过调用本地test.dev访问应用程序,你会用到位的“localh ost“为cookies,它不应该像localhost一样搞乱cookie。你可以找到更多的信息,我在说什么本地主机cookies here

1

即使使用php的setcookie(),我也有同样的问题,但设置域字段为空作品。虽然Zend_Http_Cookie()会在域字段为空时抛出异常。

的Cookie不会与我的本地主机的虚拟主机

setcookie ('FOO', 'cookie content', 0, '/', 'myProjectSiteVHost', true, true); 

工作设置域字段为空 - 存储的cookie!

setcookie ('FOO', 'cookie content', 0, '/', '', true, true); 

文档:setcookie()