外部页面(同一个域)中的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/");
}
我无法让这个工作,我已经检查了所有建议,没有任何效果。
答案 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会话来获取你的数据,或者你可以让两者分享同一个会话