我试着在我的网站的另一部分访问Magento的客户会话。
domain.com/shop/ <- Magento
domain.com/test.php
这家商店本身就像一个魅力,但我试着去test.php的内确定如果客户已登录,这样我就可以链接到自己的购物车显示了他的名字。
test.php的内容至今:
<?php
require_once dirname(__FILE__).'/shop/app/Mage.php';
umask(0);
Mage::app('default');
Mage::getSingleton('core/session', array('name' => 'frontend'));
var_dump(Mage::getSingleton('customer/session')->isLoggedIn());
?>
我不断收到布尔(假)返回。 在我登录到Magento的在domain.com/shop/所以“真实”的预期。
我是不是忘了什么东西?
我建议检查Magento的设置cookie的路径。 最有可能的,它被设置为/shop
,这样的cookie不会对您的文件上面进行访问。
您可以修改Magento用于设置其cookie的下控制面板中的路径System -> Configuration -> Web (under the General heading) -> Session cookie management
它是根据confuguration-> web
上的Magento版本。 1.10.1.1
同样的问题也被我逼疯了。 我通过以下的工作,直到最后一个项目解决了这个问题:
- 具有正确的法师商店ID(当前存储)是否已确定?
- 您是否使用为Magento的同一个会话路径?
- 您使用的cookie的目的是相同的(子)域?
- 您是否使用HTTP或HTTPS的内部和外面的Magento?
如果您已经检查了所有上述情况,请确保您在自己的第一次初始化一个核心“前端”会是这样的:
// Initialise the core "frontend" session
Mage::getModel('core/session', array('name' => 'frontend'));
然后你就可以像这样访问客户/会话:
$customer = Mage::getSingleton("customer/session", array('name' => 'frontend'))->getCustomer();