0

我正在运行 PHP Magento 1.4.1.1,并且正在存储一个带有用户首选项的 cookie。

我用它来存储cookie。

umask(0);
Mage::app();
Mage::getModel('core/cookie')->set('lunch', 'user likes tuna fish', (60*60*24));

现在这可以很好地保存 cookie...但是如果我尝试更新或删除 cookie,我看不到任何变化。

我尝试使用新数据设置 cookie,如下所示:

umask(0);
Mage::app();
Mage::getModel('core/cookie')->set('lunch', 'user likes hamburgers', (60*60*24));

通常会使用完全相同的名称、域和路径创建第二个 cookie。

此外,如果我尝试删除而不是更改,我会使用这个:

umask(0);
Mage::app();
Mage::getModel('core/cookie')->delete('lunch');

cookie 没有任何变化。

我也使用过这样的删除:

Mage::getModel('core/cookie')->delete('lunch', '/', 'www.domain.com');
Mage::getModel('core/cookie')->delete('lunch', '/', '.domain.com');
Mage::getModel('core/cookie')->delete('lunch', '/', 'domain.com');

也没有运气。

有任何想法吗?

仅供参考...我在根文件夹之外。

4

1 回答 1

0

好的,在这个我最终解决了自己......但导致了问题。我在使用 set 时传递的变量本身没有设置...发送 NULL 或 FALSE。如果这是 FALSE 或 NULL,显然 Magento 不会设置 cookie

所以再次解决方案是确保设置值。

Mage::getModel('core/cookie')->set('lunch', $SET_VALUE_HERE, (60*60*24));

此外,我似乎更幸运地使用 set 和最后一个零来杀死 cookie。

Mage::getModel('core/cookie')->set('lunch', $SET_VALUE_HERE, 0 );
于 2012-08-28T21:17:15.610 回答