передача сеанса с использованием session_id между доменами - PullRequest
0 голосов
/ 29 января 2012

Я пытаюсь перенести сеанс в другой домен с помощью функции session_id.

Пользователь регистрируется на @ domainA.com и перенаправляется на domainB.com, где я хочу перенести сессию.

if(isset($_REQUEST["redirect"]) && $_REQUEST["redirect"] != ''){
            $url = urldecode($_REQUEST["redirect"]);
            if(strpos($url, "xxxxx.") === false){ //Means we are redirecting to a custom domain
                $urlParts = parse_url($url);
                $url = $urlParts["scheme"] . "://" . $urlParts["host"] . "/login/index/sid:" . session_id() . "?redirect=" . $url;                
            }            
            $this->redirect($url);  
        }

SiteB.com получит идентификатор сеанса и установит его следующим образом:

if(isset($this->params["named"]["sid"]) && $this->params["named"]["sid"]){          
            session_id($this->params["named"]["sid"]);
            $this->redirect($this->params["url"]["redirect"]);
        }

Я уверен, что сеанс прибывает на siteB.com, но $ _SESSION остается пустым.

Чего мне не хватает?

Спасибо

1 Ответ

1 голос
/ 30 января 2012

Вы должны вызвать session_id ($ sess_id) перед session_start ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...