Использование условия для $ _SERVER ['HTTP_HOST'] в конфигурационном файле ExpressionEngine - не работает - PullRequest
1 голос
/ 13 мая 2011

Я использую 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 с надписями 'redirect' и 'link':

// 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? Есть ли что-то, чего я просто не знаю об использовании этого типа переменной в условном выражении?

1 Ответ

1 голос
/ 25 октября 2012

Убедитесь, что вы находитесь на www.siteB.com, с де WWW

if ($ domain == 'www.SiteB.com')

...