Magento检查客户是否从magento外部登录

时间:2013-10-18 15:53:00

标签: php magento mage

我正在尝试实现“登录/注销”链接,如顶部菜单,但在magento之外的页面上。这是我到目前为止尝试的内容: 我使用此脚本加载Mage,然后根据登录的客户显示链接,而不是简单的“LogIn”链接。

<?php
    require_once('tmg/app/Mage.php'); //Path to Magento
    umask(0);
    Mage::app();
?>
<?php if (Mage::getSingleton('customer/session')->isLoggedIn()==0): ?>
<a href="<?php echo $this->getUrl('customer/account/login') ?>"><?php echo $this- >__('Log In') ?></a>
<?php else: ?>
    <a href="<?php echo $this->getUrl('customer/account/logout') ?>"><?php echo $this->__('Log Out') ?></a>
<?php endif ?>

浏览器中显示的内容是此代码的页面,之后绝对没有任何内容。我也尝试将它自己放入测试文件并运行它,但它也会导致一个空的浏览器窗口,没有源代码或任何可见的东西。 我做错了什么?

3 个答案:

答案 0 :(得分:2)

试试这个..

require_once('tmg/app/Mage.php');

    umask(0);
    Mage::app();
//GET SESSION DATA
Mage::getSingleton('core/session', array('name'=>'frontend'));
$session = Mage::getSingleton('customer/session', array('name'=>'frontend'));

$customer_data = Mage::getModel('customer/customer')->$session->id;

//CHECK IF LOGGED IN
if($session->isLoggedIn()){
?>
<a href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);?>customer/account/logout"><?php echo "Log Out"; ?></a>

<?php 
} else {
?>
<a href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);?>customer/account/login"><?php echo "Log in"; ?></a>
<?php 
exit;
}

答案 1 :(得分:1)

请检查这是否有帮助!

require_once 'app/Mage.php';


umask(0);

Mage::app('default');

Mage::getSingleton('core/session', array('name' => 'frontend'));

$sessionCustomer = Mage::getSingleton("customer/session");

if($sessionCustomer->isLoggedIn()) {
  echo "Logged";
} else {
   echo "Not Logged";
}

有关详细信息,请点击此处Magento Customer login

答案 2 :(得分:0)

以上解决方案适用于Firefox,但不适用于Chrome。我不得不添加

Mage::getSingleton('customer/session')->start();
行后

Mage::app('default');

然后它似乎工作正常。 (magento 1.9)