前提
PHPでfile_get_contents()を使い別サーバのページを取得しようとしています
$login_html = file_get_contents('https://xxxxx.jp/login.php'); print $login_html;
対象のページはログインページで、ブラウザで直接アクセスすると
ログイン前は
「ログインしてください」
ログイン後は
「ようこそ、XXさん」
と表示されます。
しかし、ログイン後に同じブラウザの別ウィンドウでlogin.phpにアクセスすると正常に
「ようこそ〜」と表示されるのに、
file_get_contents();を実行しても
「ログインしてください」となってしまいます
実現したいこと
なぜ、ログイン前のページが取得されるのでしょう
ログイン後のページを取得することはできないのでしょうか?
file_get_contens()としての解決法でも、他のPHPを使った解決法でも教えていただければ嬉しいです
よろしくお願いします。
補足
疑問の声を頂いたので、なぜこのようなことをしているかについて説明させていただきます
aaa.comのサイトのページ中にiframeでxxxxx.jpのページを読み込んでいて(それがlogin.php)、
そのiframe内でログイン処理がされた時にそれを検知して親のページの一部を書き換えるという仕様です
クロスドメインなのでjsで直接iframe内のdomの変更を検知することは難しいということで、
ページ全体のonloadのタイミングでiframe内がどうなっているか(既にログイン済みであれば「ようこそ」となる)を検知するために
file_get_contentsでiframe内部のソースを取得する.phpをつくり、さらにそこにajaxでアクセスしてdomの変更を読み取ろうと考えました
(サーバーは別ですが運営者は同じなので権利面での問題はありません)
回答3件
あなたの回答
tips
プレビュー