2009-07-08 5 views
9

내 웹 사이트의 다른 부분에서 Magento 고객 세션에 액세스하려고합니다.Magento 외부에서 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()); 
?> 

내가 부울 (false)를 받고 계속이 돌아왔다. domain.com/shop/의 Magento에 로그인 했으므로 'true'가 예상됩니다.

나는 뭔가를 잊고 있습니까?

+0

> "예외 : 경고 : 포함 (DoppelGangerView.php가) ......"내 생각은 어떻게 든 파일 DoppelGangerView.php을 찾을 수있을 것입니다 ... - 그것의 현재 디렉토리에 위치하지 .. - include_path 내에 위치하지 않습니다. –

답변

14

Magento가 설정하는 쿠키의 경로를 확인하는 것이 좋습니다. 대부분 /shop으로 설정되어 있기 때문에 위의 파일에서 쿠키에 액세스 할 수 없습니다.

당신은 마 젠토는 System -> Configuration -> Web (under the General heading) -> Session cookie management

+0

이제 /로 설정했는데 완벽하게 작동합니다! 감사. –

+0

Joomla가 작동하지 않는 이유 Joomla가 작동하는 별도의 페이지에서 Joomla가 아닌 Joomla가 항상 bool (false) –

+1

@Positive를 반환합니다. Jagomla에 대한 MAGENTO가 아닌 Jomomla에 관한 질문입니다. – Benubird

0

이 버전 젠토에 confuguration-> web 아래에서 제어 패널의 해당 쿠키를 설정하는 데 사용하는 경로를 수정할 수 있습니다. 1.10.1.1

0

같은 문제가 나를 미치게했습니다. 마지막 항목이 해결 될 때까지 다음 작업을 수행했습니다.

  • 올바른 메이지 저장소 ID (현재 저장소)가 설정 되었습니까?
  • Magento와 동일한 세션 경로를 사용하고 있습니까?
  • 쿠키 용도로 동일한 (하위) 도메인을 사용하고 있습니까?
  • Magento 내부 및 외부에서 HTTP 또는 HTTPS를 사용하고 있습니까?

당신이 위의 모든 검사 한 경우는 다음과 같이 자신이 첫 번째 핵심 "프론트 엔드"세션을 초기화해야합니다 :

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

그런 다음이 같은 고객/세션에 액세스 할 수 있습니다 :

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