当用户到达我的站点时,会为他们启动一个会话。有一点是在我的网站主页上使用JavaScript生成了一个子窗口。
这个子窗口转到 Twitter 站点以验证用户身份,然后它被重定向回我站点上的脚本,该脚本将一些变量存储在 SESSION 中。
我发现子窗口中的 PHP 脚本不知道已经设置的会话和 session_id,因此它启动了一个新会话,这意味着父窗口(index.php)无法访问这些会话变量。
我很困惑。我能做些什么?
更新
这是我的代码,但问题不是我的代码,而是我遇到问题的实现。
索引.php
<?php session_start(); ?>
oauth.php //子窗口
<?php session_start();
$_SESSION['screen_name'] = $twitterInfo->screen_name;
$_SESSION['profile_image_url'] = $twitterInfo->profile_image_url;
?>
当子窗口关闭并且我使用 AJAX 像这样检查 screen_name 时,它返回不匹配,因为子窗口 oauth.php 正在使用不同的会话(id)。
<?php session_start();
sleep(1);
if(isset($_SESSION['screen_name'])){
echo 'done';
exit;
}else{
echo session_id().$_SESSION['screen_name'];
exit;
}
?>