質問

Coles Notesバージョン:

index.php?map_id=fooはwww.not-my-domain.comのiframeにロードされます。インデックスセットSESSION['map_id'] = foo。 FlashファイルはAuthenticate.phpを介してSESSIONを取得しようとしますが、Authenticate.phpには any SESSION['map_id'] = foo変数の値が設定されていません。

-最初のロードのみ、クロスドメインの問題。

詳細:

設定している場所にインデックスがあります:LoadVars

インデックスファイルは、フラッシュファイルをロードします。初期化されると、フラッシュは「Authenticate.php」ファイルにアクセスします。このファイルは$map_idをエコー出力し、session_start()を介してフラッシュにロードされます。その後、Flashは適切なデータを表示します。 この手順は他の方法では実行できません

これはすべてメインサイトで問題なく機能します。この問題は、iframe埋め込みコードを提供して他のサイトに移植しようとすると発生します。

<iframe src="http://www.mydomain.com/?map_id=foo&code=bar" ... ></iframe>

別のサイト(www.anotherdomain.com)からの埋め込みコードを新たに読み込むと、<=>変数は破壊されたようです。 (<=>空白を出力します)

インデックスファイルは引き続き<=>を「foo」として適切にエコーします。「Authenticate.php」ファイルは<=>変数にアクセスできないようです。

すべての適切なファイルに<=>が存在することを確認しました。

役に立ちましたか?

解決

PHPセッションIDはデフォルトでCookieを介して渡されますが、ドメイン間でCookieを転送することはできません。代わりに、URLを介してセッションIDを渡してみてください。

PHPドキュメントの適切なページ

セッションIDが自動的に行われない場合、URLでphpにセッションIDを渡す方法はいくつかあります。

  1. セッションIDをURLに手動で渡すことができます(他のget変数の前に来る必要があります):

    <!> lt; iframe src = <!> quot; http://www.mydomain.com/?<!> amp; map_id = foo <!> amp; code = bar <!> quot; <! > gt;

  2. Cookieを無効にすると、すべてのリクエストでURLにセッションIDが自動的に追加されます:

    ini_set(<!> quot; session.use_cookies <!> quot;、<!> quot; 0 <!> quot;);

  3. url_rewriter.tags設定を編集できます。これは、セッションIDで書き換えるHTMLタグをPHPに指示します。ここでは、iframe = srcがデフォルトセットに追加されています。

    ini_set(<!> quot; url_rewriter.tags <!> quot ;, <!> quot; a = href、area = href、frame = src、iframe = src、input = src、form = fakeentry <!> quot;);

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top