Magento Session无法在外部页面中工作(同一个域)

时间:2011-12-19 21:29:32

标签: session magento

外部页面(同一个域)中的Magento会话运行不正常,我已经检查了所有其他主题,但是它正在运行的任何解决方案。

require_once ( "../app/Mage.php" );
umask(0);
Mage::app("default");

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


if($session->isLoggedIn()){
    //do it
} else {
    //  Transfer them to a login page
    header("Location: http://www.mydomain.com/customer/account/login/");
} 

我无法让这个工作,我已经检查了所有建议,没有任何效果。

3 个答案:

答案 0 :(得分:0)

只是为了您的信息,在header()函数之后,应该有另一行:

exit;

重定向工作。

(显然这更像是评论而不是答案,但我还没有权利在任何地方发表评论。)

答案 1 :(得分:0)

你可以试试这些线,它们看起来很相似,但在Magento 1.5.1上为我工作..

require_once ( "../app/Mage.php" );
umask(0);
Mage::app("default"); 
if(Mage::getSingleton('customer/session')->isLoggedIn()){
    //do it
} 
else {
    //  Transfer them to a login page
    header("Location: http://www.mydomain.com/customer/account/login/");
} 

答案 2 :(得分:0)

我认为您的问题是您已经启动了会话,因此您尝试启动magento会话并从中获取数据失败。 如果您查看Mage_Core_Model_Session_Abstract_Varien,它首先要做的是查看$ _SESSION变量是否已设置并返回(如果是)。您可以在那里设置调试器断点并验证您是否确定。 你可以关闭另一个会话并启动magento会话来获取你的数据,或者你可以让两者分享同一个会话