9

我试图在我网站的另一部分访问 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());
?>

我不断返回bool(false)。我在 domain.com/shop/ 上登录了 Magento,所以应该是“真”。

我是不是忘记了什么?

4

3 回答 3

14

我建议检查 Magento 设置的 cookie 的路径。最有可能的是,它设置为/shop,因此您上面的文件将无法访问 cookie。

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

于 2009-07-08T16:01:08.083 回答
0

confuguration-> web在 Magento 版本下。1.10.1.1

于 2011-10-19T20:36:59.537 回答
0

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

  • 是否设置了正确的法师商店 ID(当前商店)?
  • 您是否使用与 Magento 相同的会话路径?
  • 您是否出于 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();
于 2017-04-26T02:40:15.443 回答