ユーザーがサイトにアクセスすると、セッションが開始されます。サイトのホームページで、JavaScriptを使用して子ウィンドウが生成されるポイントがあります。
この子ウィンドウは Twitter サイトに移動してユーザーを認証し、SESSION にいくつかの変数を格納するサイトのスクリプトにリダイレクトされます。
子ウィンドウの PHP スクリプトは、既に設定されているセッションと session_id を認識していないため、親ウィンドウ (index.php) がこれらのセッション変数にアクセスできないことを意味する新しいセッションを開始することがわかりました。
私は困惑しています。私に何ができる?
アップデート
これが私のコードですが、問題は私のコードではなく、私が問題を抱えている実装です。
index.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;
}
?>