• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:htmlにコードを貼り、リファラーを取得したい)

htmlにコードを貼り、リファラーを取得したい

このQ&Aのポイント
  • htmlにコードを貼り、リファラーとアクセスページを取得したいのですが、うまくいかない状況です。
  • 貼り付けたコードからは自サーバの情報が取得されてしまい、リファラーとアクセスページを取得できません。
  • これまで試行錯誤してきましたが、解決策が見つかっていません。どなたか助言をいただけないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • LOHA
  • ベストアンサー率52% (203/388)
回答No.2

ん~結局何がしたいのか分からなくなってきました・・・。 >リファラーとアクセスページを取得しようと思っている これは、HTMLにアクセスしてきた人(クライアント)のリファラを取得したいということでしょうか? それならJavaScriptを使うのが一番楽です。 http://f32.aaa.livedoor.jp/~azusa/?t=js&p=document_info#a_referrer アクセスページというのは、「現在のページのアドレス」のことでしょうか? それならJavaScriptではwindow.locationで取得できます。 http://www.tohoho-web.com/js/location.htm >[現在の状態] >$access_url の中身 = http://自サーバのドメイン/script.php >$referer_url の中身 = http://コードを貼り付けたページ こうなるのは、自サーバーのPHPへのアクセスは外部サーバーのHTMLからのアクセスだからです。 もしクライアントのリファラなどを知りたいのであれば、実際にクライアントからの接続がある外部サーバー上で取得しなければなりません。 どうしても自サーバーでPHPで処理したい場合は、JavaScriptで得た上記の情報をGETやPOSTで通知することになるのですが、JavaScriptだけではクロスドメインなアクセスはできないので、結局外部サーバー側でPHPやCGIなどを利用して中継してやる必要があります。なので、外部サーバーがPHPもCGIも使えない、といった場合は無理かと思います。 ><script type="text/javascript" src="http://example.com/script.php"></script> >は、フリーの解析ツールなんかが使ってるのを見て、コードがスマートでいいなぁと思ったので、チョイスしました。 これは、外部サーバーのPHPを実行して得た出力をJavaScriptとして実行する、という意味です。 #しばしばコールバックを設定してJSONPとして利用されたりします 外部サーバーのPHPファイルをHTMLに読み込んで実行するという意味ではありません。 なんだかまとまらなくなってしまいましたがご了承ください…。

cyar
質問者

お礼

返信ありがとうございます! おっしゃる通り、HTMLにアクセスしてきた人(クライアント)のリファラと、現在のページのアドレスを取得しようとしています。 >もしクライアントのリファラなどを知りたいのであれば、実際にクライアントからの接続がある外部サーバー上で取得しなければなりません。 PHPの場合はそのようになるんですね! PHPとJavaScriptのリファラ取得方法の違いを理解していませんでした。。。 >#しばしばコールバックを設定してJSONPとして利用されたりします これはよく意味が理解できなかったです。まだまだ勉強不足ですね(;^_^A そして、 おかげさまで、以下のような手順を踏んで無事解決することができました。 script.phpの呼び出し → JavaScriptでリファラとアクセスページを取得 → 非同期GET通信でPHPにデータを渡す 丁寧なご説明、ほんとにありがとうございましたm( __ __ )m

その他の回答 (1)

  • LOHA
  • ベストアンサー率52% (203/388)
回答No.1

><script type="text/javascript" src="http://example.com/script.php"></script> これは外部JavaScriptを実行するための表記法ですのでPHPスクリプトファイルを指定するのは間違っています。 #場合によってはありえますが、少なくとも今回のケースでは間違っています なので、PHPを実行したいのであればHTMLファイル内で <?php /* この間にPHPの処理を書く */ ?> ようにしましょう。 とはいえ、やはり基礎から勉強するのが早道かと思いますが。 http://www.google.co.jp/search?hl=ja&safe=off&client=firefox-a&hs=LHJ&rls=org.mozilla:ja:official&q=php+%E5%85%A5%E9%96%80&revid=651006625&sa=X&ei=kFkyTa6BE8KXccSQuZYH&ved=0CIoBENUCKAA ちなみにリファラに関してはJavaScriptでも取得できます。

cyar
質問者

お礼

申し訳ございません。 質問に前提条件を書いてなかったですね(汗) 外部のhtmlページは、そのサーバ設定を変更することができず、 <?php /* この間にPHPの処理を書く */ ?> を使いたくても使えない状態なんです。 <script type="text/javascript" src="http://example.com/script.php"></script> は、フリーの解析ツールなんかが使ってるのを見て、コードがスマートでいいなぁと思ったので、チョイスしました。 このコードでなくてもいいのですが、最終的な渡し先がPHPのシステムなんで、できればPHPの変数に格納したいのですが、良い方法はありませんでしょうか?

関連するQ&A

専門家に質問してみよう