2009-07-08 42 views
9

Tôi đang cố truy cập phiên khách hàng Magento ở một phần khác của trang web của tôi.Làm cách nào để truy cập phiên của người dùng Magento từ bên ngoài Magento?

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

Cửa hàng hoạt động như một sự quyến rũ, tuy nhiên, tôi cố gắng xác định trong test.php nếu khách hàng đăng nhập, vì vậy tôi có thể hiển thị tên của mình bằng liên kết đến giỏ hàng.

Nội dung test.php cho đến nay:

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

tôi tiếp tục nhận được bool (false) trả lại. Tôi đã đăng nhập vào Magento tại domain.com/shop/ để dự đoán ‘true’.

Tôi có quên điều gì đó không?

+0

> "Ngoại lệ: Cảnh báo: include (DoppelGangerView.php) ......" tôi đoán sẽ là nó không thể tìm thấy tập tin DoppelGangerView.php bằng cách nào đó .. - nó không nằm trong thư mục hiện .. - Nó không nằm trong include_path của bạn –

Trả lời

14

Tôi khuyên bạn nên kiểm tra đường dẫn của cookie mà Magento đặt ra. Nhiều khả năng, nó được đặt thành /shop, do đó, cookie sẽ không thể truy cập vào tệp của bạn ở trên tệp đó.

Bạn có thể thay đổi con đường mà Magento sử dụng để thiết lập cookie của nó trong bảng điều khiển dưới System -> Configuration -> Web (under the General heading) -> Session cookie management

+0

Bây giờ tôi đã đặt nó vào/và hoạt động hoàn hảo! Cảm ơn. –

+0

Tại sao điều này không làm việc với joomla tôi đã thử nghiệm nó trong trang riêng biệt mà nó đang làm việc nhưng không hoạt động với joomla luôn trả về bool (false) –

+1

@Positive vì câu hỏi MAGENTO này là về MAGENTO, chứ không phải joomla. – Benubird

0

nó là dưới confuguration-> web trên Magento ver. 1.10.1.1

0

Vấn đề tương tự đã khiến tôi phát điên. Tôi đã làm việc thông qua những điều sau đây cho đến khi mục cuối cùng giải quyết được:

  • ID cửa hàng Mage chính xác (cửa hàng hiện tại) đã được đặt chưa?
  • Bạn có sử dụng cùng một đường dẫn phiên làm Magento không?
  • Bạn có sử dụng cùng một miền (phụ) cho mục đích cookie không?
  • Bạn đang sử dụng HTTP hoặc HTTPS cả bên trong và bên ngoài Magento?

Nếu bạn đã kiểm tra tất cả các trên, chắc chắn rằng bạn khởi tạo một lõi "frontend" phiên giao dịch ngày đầu tiên của mình như thế này:

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

Sau đó, bạn có thể truy cập vào các khách hàng/phiên như thế này:

$customer = Mage::getSingleton("customer/session", array('name' => 'frontend'))->getCustomer(); 
Các vấn đề liên quan