Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 跨域使用会话\u id传输会话_Php_Cakephp_Sessionid - Fatal编程技术网

Php 跨域使用会话\u id传输会话

Php 跨域使用会话\u id传输会话,php,cakephp,sessionid,Php,Cakephp,Sessionid,我正试图使用session_id函数将会话传输到另一个域 用户登录@domainA.com并被重定向到domainB.com,我想在那里传输会话 if(isset($_REQUEST["redirect"]) && $_REQUEST["redirect"] != ''){ $url = urldecode($_REQUEST["redirect"]); if(strpos($url, "xxxxx.") === false){ /

我正试图使用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,但$\u会话仍为空

我错过了什么


谢谢

您应该在会话开始前调用会话id($sess\u id)()

两个域是否都可以从php.ini访问相同的
session\u save\u path
?我已经确定了问题:设置会话id必须在session\u start()之前完成,并且必须允许刷新响应才能有效地设置会话。