dポイントプレゼントキャンペーン実施中!

既存のHTMLサイトに一部機能追加したいだけ+ブラウザに表示されるURLの関係で、必要部分だけIFRAMEでPHPサーバーのファイルを呼び出して表示させようと考えました。
IFRAMEを記述するHTMLファイル設置サーバーはPHPが使用出来ません。

<iframe src="http://hogehoge/login.php"></iframe>
とHTML内にログイン用PHPを表示させ、ボタン押下でログイン判定
→データをセッション変数にセット
→header("Location: http://hogehoge/form.php");で画面遷移
→フォーム用PHPに先ほどセットしたセッションデータ表示
とこんな感じの処理がしたいのですが、これがFireFoxだとうまく動くのに、IEだと動いたり動かなかったりします。(動く=開発環境である私のPC、動かない=他全て)

ボタン押下で自分自身にPOSTしたデータは正しく受け取って画面遷移まで処理しているのですが、遷移後のページでセッション取得しようとすると取得出来ないようなのです。

IFRAMEを通さず直接URL叩いた場合は、FF・IEどちらも正常に動いています。

session_name('hoge');
session_start();
はPHP先頭に記載してあります。

IFRAMEを使用して外部サーバーのPHPを使用する際に、気をつけねばならない事などがあるのでしょうか… もし解決方法に思い当たる方がいらっしゃいましたら、どうかご回答宜しくお願いいたします。
またもし補足等必要でしたらご指摘下さい。

A 回答 (1件)

iframeもframeも、外枠ファイルのサーバーと内部ページのサーバーが違う場合に、セキュリティ的に問題となることがあります、


ブラウザのurl欄には、外枠のurlしか表示されないので、悪質サイトのページ表示などされても解らない事があるので、そういったページは表示しない、クッキーなどは受け付けない方向になってきているようです。
ブラウザのセキュリティ設定を確認してみて下さい。
今後の方向としては、「iframe内に別サーバーページを表示してそこからログイン」は、セキュリティ的にブロックされやすくなると思いますので、ログインページへのリンクをおいて、全体のurlをそのサーバーへ移動してからログインするのが確実でしょう。
    • good
    • 0
この回答へのお礼

悪質サイト対策で…なるほど!
私のPCでのみ動いていたのは、ブラウザのセキュリティ設定が低めに設定されているせいだったのか…原因判明でスッキリです。
セキュリティ上の制限ではもうどうしようもないので、hrm_mmmさんのおっしゃるように、ログインページへのリンクを置いて対処するようにしたいと思います。
回答ありがとうございました!
(お礼が遅くなってしまい申し訳ありません!)

お礼日時:2009/05/12 20:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!