【问题标题】:How to access Magento user's session from outside Magento?如何从 Magento 外部访问 Magento 用户的会话?
【发布时间】:2009-07-08 15:35:42
【问题描述】:

我正在尝试访问我网站另一部分的 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,所以应该是“true”。

我是不是忘记了什么?

【问题讨论】:

  • > "Exception: Warning: include(DoppelGangerView.php) ......" 我的猜测是它无法以某种方式找到文件 DoppelGangerView.php .. - 它不在当前目录中。 . - 它不在您的 include_path 中

标签: php oop session magento e-commerce


【解决方案1】:

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

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

【讨论】:

  • 为什么这不适用于 joomla 我在单独的页面中对其进行了测试,它可以正常工作但不能与 joomla 一起使用总是返回 bool(false)
  • @Positive 因为这个 MAGENTO 问题是关于 MAGENTO,而不是 joomla。
  • 您可能希望创建自己的会话模型类作为自定义模块的一部分。这样你就可以在上面存储你需要的任何东西,然后在你网站的另一部分,实例化 mage::app 对象并提取你的会话模型数据。如果您想了解更多信息,请给我发消息
【解决方案2】:

它位于 Magento 版本的 confuguration-&gt; web 下。 1.10.1.1

【讨论】:

    【解决方案3】:

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

    • 是否设置了正确的法师商店 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();
    

    【讨论】:

      猜你喜欢
      • 2012-04-16
      • 2017-01-12
      • 1970-01-01
      • 2012-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多