2013-10-18 60 views
0

我試圖實施「登錄/註銷」鏈接,如頂部菜單中,但在magento以外的頁面上。這是我到目前爲止所嘗試的: 而不是一個簡單的「登錄」鏈接我用這個腳本加載法師,然後顯示鏈接取決於客戶是否登錄。Magento檢查客戶是否從magento外部登錄

<?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 ?> 

在瀏覽器中顯示的內容是頁面直到此代碼,此後絕對沒有任何內容。我也試圖把它放到一個測試文件本身並運行它,但它也導致一個空的瀏覽器窗口,沒有源代碼或任何可見。 我在做什麼錯?

回答

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; 
} 
+0

@lukaspanic如果我把'login.php'文件放在** magento根目錄**中,它就可以和我一起工作。並且相同的代碼不能在其外部工作! **注意:**更改文件位置時更改** require_once **路徑! –

+0

我使用了Elavarasan解決方案,但我必須將商店代碼放在應用程序調用中 - 例如:Mage :: app('default');沒有它不起作用。 – MoppieMop

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

+0

謝謝! 'Mage :: getSingleton('core/session',array('name'=>'frontend'));'是我所需要的。 – miguelpelota

0

上述解決方案在Firefox爲我工作,而不是瀏覽器。我有

Mage::app('default'); 

然後它似乎做工精細行後添加

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

。 (magento 1.9)