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

2019-05-17 15:46发布

我试着在我的网站的另一部分访问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/所以“真实”的预期。

我是不是忘了什么东西?

Answer 1:

我建议检查Magento的设置cookie的路径。 最有可能的,它被设置为/shop ,这样的cookie不会对您的文件上面进行访问。

您可以修改Magento用于设置其cookie的下控制面板中的路径System -> Configuration -> Web (under the General heading) -> Session cookie management



Answer 2:

它是根据confuguration-> web上的Magento版本。 1.10.1.1



Answer 3:

同样的问题也被我逼疯了。 我通过以下的工作,直到最后一个项目解决了这个问题:

  • 具有正确的法师商店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();


文章来源: How to access Magento user's session from outside Magento?