2012-04-23 152 views
2

同じドメインにないページにiFRAMEがあります。私はURLを介してセッションIDを渡そうとしています。私は、このような... IFRAMEにセッション情報を渡す

applyonline.php?session_id=3u8ob97d5e3h35povbnuraih22 

は、それから私は...

$session_id = $_GET['session_id']; 
    session_id($session_id); 

は、私は無駄でこれらを設定しようとしたとしているセッションIDを読んで....のようなURLを設定

ini_set('session.use_cookies', '0'); 
    ini_set('session.use_trans_sid', '1'); 

私はこれを狂ったように笑ってしまい、私のために働く解決策を見つけることができません。

BTW FirefoxはiFRAMEのサードパーティのCookieを受け入れるため問題なく動作します。IEが問題です。

header ("p3p:CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\""); 
+0

私は答えはイエスであると思いますが、2つのドメインが同じサーバー上にあるされていますか?あなたはFirefoxでこのメソッドが機能し、セッションデータを読むことができますか?それは失敗したIEだけですか?各ドメインが異なるユーザーとして実行されている場合、第2ドメインのユーザーは、元のドメインによって作成されたセッションファイルにほとんどアクセスできなくなります。 – drew010

+0

はい、それはFirefoxで動作します。ドメインは同じサーバー上にありません。 –

+0

また、ドメイン間で情報を渡すのではなく、iFRAMEページに渡すだけで済みます。 –

答えて

3

ではなく?PHPSESSID=引数を使用します。

+0

だからSIDは定数です。 PHPSESSIDはセッションIDを格納するために予約されていますか? –

+0

私はクッキーを無効にしてこれを試しましたが、それでも動作していませんでした。 –

+0

私は最終的にこれを得ることができました!あなたの答えは助けになりましたが、もし誰かがこの問題にぶつかったら。 session_start()でセッションを開始する前に、session_id($変数)を設定する必要があります。これは私の問題を解決しました。 –

0

これはまだクッキーを使用しているように見えるにもかかわらず動作するように見えました。

それがin the docs記述されている行うにはクリーンな方法:

url.php?<?= htmlspecialchars(SID) ?> 
+1

何か説明がありますhttp://www.w3.org/TR/P3P11/#compact_policies – Vytautas