我正在尝试使用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将收到会话ID并将其设置为:
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仍为空。
我错过了什么?
由于
答案 0 :(得分:1)
你应该在session_start();
之前调用session_id($ sess_id)