【发布时间】:2012-11-05 15:50:11
【问题描述】:
我正在使用此代码结构在自定义页面上提取 Magento 会话信息:
require_once ( "../app/Mage.php" );
umask(0);
Mage::app("default");
Mage::getSingleton("core/session", array("name" => "frontend"));
$session = Mage::getSingleton("customer/session");
$test = array();
//print_r($session);
if($session->isLoggedIn()){
Set some session variables
} //end session check
else {
//They don't belong here. Transfer them to a login page
header("Location: http://www.mydomain.com/customer/account/login/");
}
它在大多数情况下都很好用,但有时它似乎有时无法提取会话信息。我的 print_r 看起来像这样:
Mage_Customer_Model_Session Object
(
[_customer:protected] =>
[_isCustomerIdChecked:protected] =>
[_skipSessionIdFlag:protected] =>
[_data:protected] => Array
(
[_session_validator_data] => Array
(
[remote_addr] => an.ip.addr.ess
[http_via] =>
[http_x_forwarded_for] =>
[http_user_agent] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 ( .NET CLR 3.5.30729)
)
[session_hosts] => Array
(
[www.mydomain.com] => 1
)
)
[_origData:protected] =>
[_idFieldName:protected] =>
[_isDeleted:protected] =>
)
但如果我保留 header:location 标签,它会将我带到帐户页面,因为我已登录。
有其他人经历过吗?我该如何避免呢?我被难住了。
【问题讨论】:
-
Mage::getSingleton("core/session", array("name" => "frontend"));删除此行
标签: magento