如何从Magento外部访问Magento用户的会话?

我试图访问我的网站的另一部分的Magento客户会议。

domain.com/shop/ <- Magento domain.com/test.php 

商店本身就像一个魅力,但即时通讯试图确定如果客户logintest.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()); ?> 

我不断得到bool(false)返回。 我在domain.com/shop/上login了Magento,所以“真实”是预期的。

我忘了什么吗?

我会build议检查Magento设置的cookie的path。 最有可能的是,它被设置为/shop ,所以cookie不会被上面的文件访问。

您可以在System -> Configuration -> Web (under the General heading) -> Session cookie management下的控制面板中修改Magento用来设置Cookie的path

它是在confuguration-> web在Magento ver的confuguration-> web 。 1.10.1.1

同样的问题让我发疯。 我通过以下工作,直到最后一项解决它:

  • 是否已经设置了正确的法师商店ID(当前商店)?
  • 您是否使用与Magento相同的会话path?
  • 您是否使用相同的(子)域用于cookie目的?
  • 您是否在Magento内外使用HTTP或HTTPS?

如果你已经检查了上述所有内容,确保你自己初始化一个核心的“前端”会话,像这样:

 // Initialise the core "frontend" session Mage::getModel('core/session', array('name' => 'frontend')); 

那么你可以像这样访问客户/会话:

 $customer = Mage::getSingleton("customer/session", array('name' => 'frontend'))->getCustomer();