Php 从其他网站重定向时缺少会话变量

Php 从其他网站重定向时缺少会话变量,php,session,oauth,Php,Session,Oauth,我使用OAuth在外部网站上进行身份验证。一切正常,但会话变量在从外部网站重定向后丢失 总结: 我将会话变量存储在我的网站中,然后转到其他网站的登录页面。登录并确认后,它重定向到我的回调,当我检查上一个会话变量时,它将错过!如何修复它 我尝试在使用会话的任何地方调用会话\ u start(),但它不起作用。当然,我在“php.ini”中启用了会话,在浏览器中启用了cookie:)我调试过,但找不出原因 更新: 存储会话变量后,我执行如下请求: 注意oauth_回调,它是重定向URL。我不知道

我使用OAuth在外部网站上进行身份验证。一切正常,但会话变量在从外部网站重定向后丢失

总结: 我将会话变量存储在我的网站中,然后转到其他网站的登录页面。登录并确认后,它重定向到我的回调,当我检查上一个会话变量时,它将错过!如何修复它

我尝试在使用会话的任何地方调用会话\ u start(),但它不起作用。当然,我在“php.ini”中启用了会话,在浏览器中启用了cookie:)我调试过,但找不出原因

更新: 存储会话变量后,我执行如下请求:


注意oauth_回调,它是重定向URL。我不知道mixi.jp使用什么重定向。

会话id存储在cookie中。cookie将发送到您注册的域的每个页面中。当您跳转到另一个域时,不会发送会话id为的cookie。您必须将会话id传递给新域,然后在此域中使用会话id创建新cookie

header('Location:redirect.php?session=' . session­_id());
然后在重定向页面中恢复会话

<?php
  session_id($_GET['session']);
  session_start(); 

确保重定向前后站点的域完全相同

注意

www.yoursite.com 


是两个不同的站点

远程页面是否会将标题重定向到您的页面?用户重定向到的域是否100%相同?记住,
www.domain.com
domain.com
是不同的域。对不起,我不明白你的意思(请看我上面的更新。但他正在跳转到另一个域并返回。当他回来时,cookie应该仍然存在。cookies和重定向总是会引起头痛。我尝试了你的解决方案,但没有效果。“其他网站”不允许我再传递一个参数。我的意思是,它不允许我将“&session=xxx”传递回“mypage/callback.php”,只允许使用“oauth\u令牌”。^这是正确的。我将$\u SERVER['REDIRECT\u SCRIPT\u URI']设置为我的重定向URI,以确保“www”是否存在。重定向\u SCRIPT\u URI可能无法在您的服务器上工作,请尝试输出$\u SERVER以查看您有哪些选项!从以下方面了解:
yoursite.com