2009-07-08 14 views
9

Sto cercando di accedere alla sessione del cliente Magento in un'altra parte del mio sito web.Come accedere alla sessione dell'utente Magento dall'esterno di Magento?

domain.com/shop/ <- Magento 
domain.com/test.php 

Il negozio stesso funziona come un fascino, ma nel tentativo di stabilire entro test.php se un cliente è collegato, in modo da posso visualizzare il suo nome con un link al suo carro.

Contenuto del test.php finora:

<?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()); 
?> 

continuo a ricevere bool (false) restituiti. Ho effettuato l'accesso a Magento all'indirizzo domain.com/shop/, quindi è previsto "true".

Sto dimenticando qualcosa?

+0

> "Eccezione: Warning: include (DoppelGangerView.php) ......" la mia ipotesi è che non riesce a trovare il file DoppelGangerView.php in qualche modo .. - la sua non trova nella directory corrente .. - Non si trova all'interno del tuo include_path –

risposta

14

Si consiglia di verificare il percorso del cookie impostato da Magento. Molto probabilmente, è impostato su /shop, quindi il cookie non sarà accessibile per il tuo file sopra di esso.

È possibile modificare il percorso che Magento utilizza per impostare il suo biscotto nel pannello di controllo sotto System -> Configuration -> Web (under the General heading) -> Session cookie management

+0

Ora l'ho impostato su/e funziona perfettamente! Grazie. –

+0

Perché non funziona con joomla L'ho provato in una pagina separata dove funziona, ma non funziona con joomla restituisce sempre bool (false) –

+1

@Positive perché questa domanda MAGENTO riguarda MAGENTO, non joomla. – Benubird

0

è sotto confuguration-> web su Magento ver. 1.10.1.1

0

Lo stesso problema mi faceva impazzire. Ho lavorato su quanto segue fino a quando l'ultimo elemento l'ha risolto:

  • È stato impostato l'ID di archivio Mage corretto (archivio corrente)?
  • Stai utilizzando lo stesso percorso di sessione di Magento?
  • Stai usando lo stesso (sotto) dominio a scopo di cookie?
  • Stai utilizzando HTTP o HTTPS sia all'interno che all'esterno di Magento?

Se hai controllato tutto quanto sopra, assicurarsi che si inizializza un nucleo sessione "frontend" da sola prima in questo modo:

// Initialise the core "frontend" session 
Mage::getModel('core/session', array('name' => 'frontend')); 

Quindi è possibile accedere al cliente/sessione di simile a questo:

$customer = Mage::getSingleton("customer/session", array('name' => 'frontend'))->getCustomer();