【发布时间】:2012-10-26 00:09:08
【问题描述】:
我正在使用 ExpressionEngine 2(内部版本:20101220)和 Multisite Manager(v2.0 内部版本:20101215)。我有一个主站点和 30 个子站点。我希望用户能够登录到任何子站点,同时登录到主站点。有一种方法可以让用户登录到配置文件中的所有站点,但浏览器在进行 30 次重定向以设置 cookie 时会抛出错误。
所以,我创建了一个条件,以便根据您登录的域,它会为 $config['multi_login_sites'] 创建正确的列表:
$domain = $_SERVER['HTTP_HOST'];
if ($domain == 'www.SiteB.com') {
$config['multi_login_sites'] = "http://www.MainSite.com/|http://www.SiteB.com/";
} else {
$config['multi_login_sites'] = "http://www.MainSite.com/";
}
我可以在页面上显示 $config['multi_login_sites'] 并且可以看到当我在 SiteB 上时,它是正确的。但是当我登录时,我收到这些错误并且重定向不起作用:
A PHP Error was encountered
Severity: Notice
Message: Undefined index: 2
Filename: member/mod.member_auth.php
Line Number: 243
A PHP Error was encountered
Severity: Notice
Message: Undefined index: 2
Filename: member/mod.member_auth.php
Line Number: 244
mod.member_auth.php 中的那些行是下面说“重定向”和“链接”的行:
// We're done.
$data = array( 'title' => $this->EE->lang->line('mbr_login'),
'heading' => $this->EE->lang->line('thank_you'),
'content' => $this->EE->lang->line('mbr_you_are_logged_in'),
'redirect' => $sites[$this->EE->input->get('orig')],
'link' => array($sites[$this->EE->input->get('orig')], $this->EE->lang->line('back'))
);
如果我摆脱条件语句而只使用 $config['multi_login_sites'] = "http://www.MainSite.com/|http://www.SiteB.com/"; 那么它就可以正常工作了。
这似乎是一个 PHP 问题,但可能是 EE/CodeIgniter 问题?在条件中使用这种类型的变量有什么我不知道的吗?
【问题讨论】:
-
EE2 的哪个版本和构建?你看过 mod.member_auth.php 的第 243 和 244 行吗? (这些行上的内容可能会在版本和构建之间发生变化。)
-
对于 EE,Build 为 20101220,对于 MSM,2.0 Build:20101215。我会在上面的帖子中添加这些内容。
-
你试过把这个问题发到ExpressionEngine 2 Technical Support Forum吗?
-
你能发布 $this->EE->input->get('orig') 包含的内容吗? (对 mod.member_auth.php 做一个小修改)
标签: php codeigniter expressionengine