ベストアンサー ※ ChatGPTを利用し、要約された質問です(原文:アクセス解析でのHTTP_REFERERについて) アクセス解析でのHTTP_REFERERについて 2002/12/01 02:11 このQ&Aのポイント アクセス解析のCGIを作成する際にHTTP_REFERERについての課題が発生しています。HTTP_REFERERが空白になってしまう原因について、詳細な解説を求めています。Tripodの無料HPを使用している状況で、HTTP_REFERERの保存に特別な処理が必要なのかを確認したいです。 アクセス解析でのHTTP_REFERERについて アクセス解析のCGIを作ってみようとがんばっています。そこでお伺いしたいのですが、 $ln = "$ENV{'HTTP_REFERER'}"; と単純にやればリンク元が取れると思っていたのですが、なぜか何度やってみてもHTTP_REFERERだけがだめでした。他の環境変数は問題なくファイルに書き出せるのですが、何をやってもリンク元の部分だけが空白になってしまいます。本をいくら読んでみてもわからず、ほとほと困り果ててこちらに参りました。 REFERERだけは保存するのに何か特別な処理が必要なのですか?解説が面倒なようでしたら Yes(処理が必要)/No(そんなことない君のスクリプトがどこかおかしい) だけでも構わないので教えていただけると有り難いです。 Tripodの無料HPを使っています。 質問の原文を閉じる 質問の原文を表示する みんなの回答 (2) 専門家の回答 質問者が選んだベストアンサー ベストアンサー HUTABA ベストアンサー率27% (436/1611) 2002/12/01 10:41 回答No.2 #1です。 JavaScriptから起動されているんですか。 それなら、いっそRefererもJavaScriptで取得してはどうでしょう? CGIからの取得では、「自分を呼び出したのはJavaScript」という事になるので、うまく取得できないと思います。 私も以前JavaScriptから呼び出すアクセス解析を作成しましたが、JavaScriptで取得するようにしていました。 document.referrer で取得できますよ。 質問者 お礼 2002/12/01 23:44 >document.referrer >で取得できますよ。 ご丁寧に教えていただいて本当にありがとうございました。おかげ様で動作しました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (1) HUTABA ベストアンサー率27% (436/1611) 2002/12/01 02:16 回答No.1 No $ENV{'HTTP_REFERER'}で(必ずしも正しくはありませんが)リンク元が取得できます。 Mohicanさんはご自身で作られたアクセス解析をテストする時に、きちんとREFERERが取れるようにアクセスされていますか? CGIスクリプトに直接アクセスしたり、ログを収集するタグを埋め込んだページに直接アクセスしていたりしては、「リンク元」なんて物は存在しないわけですから、そういう場合は取得できないと思います。 質問者 お礼 2002/12/01 05:29 早速の御回答本当にありがとうございます。 ローカルでのテストをした際は、きちんとリンク元がログに保存されます。なのでREFERERが空ということはないとは思います。確認するためローカルでしっかりとリンク元が表示される簡単なものをそのままサーバ上で再現してみました。 ローカルでテストした状況は a.html から b.html にリンク b.html で javascript を使って access.cgi を起動させる 結果を log.dat に残す。 この場合、ローカルではリンク元はきちんと ~~~a.html とログに保存されています。けれどこれとまったく同じ状況をTripodのサーバ上で再現してもなぜかリンク元が必ず空白になってしまうんです。リンク元以外のログは(時間やIP)しっかりと保存されているのでアドレスの指定が間違っていてaccess.cgiが動いていないということはありません。 そこで「これはもしかして何か特別な処理が必要なのかなぁ?」と思ってお伺いした次第です。やはりわたしのが書いたものがどこかおかしいのでしょうか??(なにか間違いを犯せる程の長さではないのですが・・・) 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発Perl 関連するQ&A フレームページで HTTP_REFERER よろしくお願いいたします。 初心者ながらもHPを立ち上げ、Free配布のcgiもいくつか設置したのですが、 アクセス解析のcgiで、機能等に非常に満足のいくcgiが、参照元を取得するのに 「HTTP_REFERER」を使っていました。 私のHPは、フレームを使っておりまして、「HTTP_REFERER」では参照元が取得 出来ません。 どのようにすればよろしいのでしょうか?? ちなみに私の使っているサーバーは、HPとcgiが別サーバーとなっています。 解析するページからは『<img~~』で呼び出しています。 ドコモ携帯で$ENV{'HTTP_REFERER'}が表示されない。 ドコモ用のプログラムを作成しています。 環境変数の$ENV{'HTTP_REFERER'}をドコモのブラウザから 表示させたかったのですが、表示できません。ほかの環境変数は 表示できるのですが、なぜか$ENV{'HTTP_REFERER'}だけが表示 できません。ほかのキャリアでは表示できるのですが、なぜでしょうか? どなたかご教授お願いいたします。 環境変数HTTP_REFERERを使うには? ただ今、CGIで独自のアクセス解析プログラムを作成中です。 相手がアクセスしてきたら、メールに転送して情報を取得出来るようにしたんですが・・・・ リンク元を取得するのに以下のようにやってみたのですが、送られてきたメールは空メール(涙) ソース抜粋 $host = $ENV{'REMOTE_ADDR'}; $ref = $ENV{'HTTP_REFERER'}; open(MAIL,"| $sendmail $mailto"); flock(MAIL,2); print MAIL $host . $ref; flock(MAIL,8); close(MAIL); ホストアドだけを取得するとちゃんと情報が入って返って来るんですよね・・・ すみません、情報を取得できる良い方法は無いでしょうか? ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム HTTP_REFERERが使えない PHP4.2.1(RedHAT 7.2上)です。 $HTTP_REFERERや$HTTP_USER_AGENT等の環境変数が取得できないのですが、php.iniファイルで設定が必要でしょうか? 環境変数の取得方法が変わったのでしょうか? $_SERVER['HTTP_REFERER'] について $_SERVER['HTTP_REFERER'] について質問があります。 この変数は、移動元のページのアドレスが入ると思うのですが、 Flashエレメントのボタンなどで移動すると、何も入りません。 アクセス制限に利用したいと思っているのですが、 何も入らないととても困ります。 何か良い方法はないものでしょうか? よろしくお願いします。 環境変数のHTTP_REFERERのチェック 配布されたコードを見ているのですが、意味がわからないので 教えて下さい。 $referer_url[0] = 'http:\/\/localhost\/'; と宣言してあり、 そもそもlocalhostの意味もわかりません。 ##===================================== ## リンク元チェック処理 = ##===================================== if($REFERER_seigen == 1){ &ref_chk; if ( $refchk==1 ){ #一致しなければ終了 print "エラー403"; exit; } } という処理で、ref_chk関数を呼んでおりその中身が ##===================================== sub ref_chk{ $refchk = 1; #フラグの初期化(一致しない) = エラー403となる foreach $url_temp(@referer_url){ if ( $ENV{'HTTP_REFERER'} =~ /^$url_temp/){ $refchk = 0; #前方が一致したのがあったらそのホストからだからOK } } return $refchk; } とあります。前方が一致とはどういう意味でしょうか。 URLの一部を見てアクセス制限 ある掲示板の改造で特定のURL以外からのアクセスを弾くものを作りたいのですが うまくいきません。 if($ENV{HTTP_REFERER} ne 'http://www.***.ne.jp/***.html(正規のリンク元)'){ if($ENV{HTTP_REFERER} ne 'http://www.***.ne.jp/***.cgi(掲示板のURL)'){ &error('不正アクセスです'); exit; } } で、始めはうまくいったのですが、掲示板で次のページに行こうとすると URLがhttp://www.***.ne.jp/***.cgi?page=2のように引数が付いてしまい、 不正アクセス扱いされてしまいます。 そこで、引数を覗いたhttp://www.***.ne.jp/***.cgiが含まれるもの全てを アクセス可能にしたいのですが、HTTP_REFERERとどのように一致させるのか わからないのです。 どのように記述すれば良いのでしょうか? アクセス解析はフレームにつけるべき? フレームのメニューにカウンターを設置し、同時に $refer = $ENV{'HTTP_REFERER'}; で、リンク元URLを検出し、ログファイルに記録して います。 ただ、結果がメニューのURLとしてログが残ってしまい 肝心のどこから来たのかがわかりません。 これを改善するにはどうすればよろしいでしょうか? ・HPはフレームで組んであり、メニューとメインにわかれている ・index.htmにつけるとしてjavascriptなどで.cgiを動かすことはできますでしょうか? そのほかお気づきの点がありましたらご指導くださいm(__)m JavaScriptのwindow.openでリファラーが取得できない。 <SCRIPT language="JavaScript"> <!-- function OpenWin(){ window.open("sample.cgi,"new","width=500,height=250"); } // --> <A href="#" onClick="OpenWin()">オープン</a> 上のようにsample.htmlのページ内にwindow.openのJavaScriptを書いています。 sample.cgi内に$ENV{'HTTP_REFERER'}を埋め込んでいるのですがリファラーが取得できません。 window.openの場合はリファラーは取得できないのでしょうか? アクセス解析について教えてください 現在、携帯サイトを運営しております。 色々な携帯用のアクセス解析のサイトを見ているのですが どうしても、携帯からのリンク元を調べられる解析が見当たらず 困っております。 (何処から携帯サイトに来ているのか) 携帯はJAVAスクリプトに対応してないため取得出来ないことは 理解出来たのですが。 CGIなどを使って、携帯からのリンク元を取得する方法はないのでしょうか? また、そのような携帯のリンク元を取得出来る アクセス解析がありましたら教えていただけないでしょうか よろしくお願い致します。 環境変数リファラーの値をを最後のページまで持ちたい。 表題わかりにくくてすいません。 商品ごとの申し込みフォームを作成しています。 まず、 $ENV{'HTTP_REFERER'};でどのURLのページから来たか判別させて、 その最初に入ってきたリファラーの値をページ遷移のときに最後の ページまでもっていきたいのです。 ■1ページ目(HTML)名まえ年齢、商品番号などを記入 <A.HTML> ■2ページ目(CGI)住所 <B.CGI> sub page2{} ■3ページ目(CGI)確認画面。<C.CGI> sub page3{} ■4ページ目(CGI)サンクスページ <D.CGI> sub thanks{} 以上の4ページの構成ですが、最初の1ページ目のHTMLが商品ごとにちがっていて、どの商品のページのHTMLからきているのか判別させて、サンクスページで、URLごとに別の件名の確認メールを自分あてに送信できるようにしたいので、最初のページがどのURLなのかをリファラーで判断させたいのです。商品によって、入力項目を変えるたりもしています。(POSTで商品ごとのhiddenタグを送ればいいと思うかもしれませんが、今回は$ENV{'HTTP_REFERER'};についてのやり方でやりたいのです。) ですが、$ENV{'HTTP_REFERER'};を2ページ目のサブルーチンのなかに記述しても2ページ目ではどこからきているのか$ref = $ENV{'HTTP_REFERER'};などと記述すればわかるのですが、この最初のリファラーの値を3ページ目、4ページ目に持っていくのにはどうしたらいいのでしょうか?全部のページのサブルーチンに$ref = $ENV{'HTTP_REFERER'};を書いてしまうと、そのひとつまえのURLが認識されてしまいます。ですが、最初のリファラーの値をずっと最後のページまで持っていたいのです。 どなたか、方法がわかりましたらご教授願います。よろしくお願いいたします。 javascriptとPHPを用いた自作アクセス解析について 表題の件について教えて下さい。 まず、概要を申しますと、販売サイトにおいて コンバージョン(注文メール)した際に、 1.どこから来たのか(リスティング・検索エンジン・他サイトからのリンク等) 2.注文した金額 3.その他ユーザー変数 を記録したく、自作アクセス解析を作ろうと考えております。 方法としてはjavascriptとPHPを使用してユーザー変数やアクセス履歴を データベースに格納する事を考えております。 ここで試した方法なのですが、 まず、HTMLファイル内(index.htmlとします)には下記記述を書きます。 <script type="text/javascript" src="test.php"></script> このページにアクセスが合った場合、test.phpが実行されますが 動きとしては$_SERVER["~"]にて取得できるサーバー環境変数を MySQLのDBに格納するようにしております。 しかしながら、test.php内にてリファラ値が格納された $_SERVER["HTTP_REFERER"]を参照すると、 本来であれば、リンク元のURLが拾えるはずですが なぜかtest.phpの実行元であるHTMLファイルのパス(index.html) を拾ってしまいます。 またどこからindex.htmlにリンクしても、やはりindex.htmlを 拾ってしまいます。 恐らく、$_SERVER["HTTP_REFERER"]にリファラ値が記録される タイミングの問題だと考えておりますが、 例えばここで、index.htmlで読み込むプログラムをPHPではなく javascript(.jsファイル)を用いて、 リファラ値(document.referer)を拾うと、正常にリンク元の値が拾えました。 scriptタグにて読み込むプログラムにおいて PHP・javascriptでは取得できる情報に差があるのでしょうか? また、目的の事を達成する場合は具体的にどのような手法が 望ましいでしょうか。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム 「xxxx:」で始まるリファラーってなんでしょう? 自分が持っているホームページのアクセス解析を見たら、リンク元(リファラー)のところに以下のような謎の文字列を発見しました。 xxxx:++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 普通、リファラーは「http://」で始まるものが多いと思うのですが、これは「xxxx:」で始まっています。 今までこのようなことがなかったため、ネットで調べようとしましたが、さっぱりでした。 これってどういうことなのでしょうか? ちなみにアクセス解析は、「ロリポップ!」のレンタルサーバーで使える物(Analog)を使用しています。 referrer ってどうなってるの? WEBページをつくって公開してるもんですが・・・ さいきん奇妙な現象に出会ってます。 WEBサイト内の 仮称 A.html に <a href="B.html">Bページ</a> と記述して仮称 B.html へのリンクをはっています。 その B.html には Javascript が書かれてあって、document.referrer を使ってユーザがどこをクリックして B.html に来たかを、 cgi によるアクセス解析により知ることができるようにしています。 何人かのユーザさんが A.html から B.html へたびたび飛んできます。 それは document.referrer が A.html であることから分かります。 さて、ここからですが、ある理由があって A.html にある <a href="B.html">Bページ</a> の <a></a> タグを外しました。 これでどのユーザも A.html から B.html へは来れなくなるはずです。 ところが、外したあとも、あるユーザさんは B.html を見にきてるんです。 しかもアクセス解析によれば、 document.referrer は A.html のままなんです。 奇妙だと思いませんか? 考えられる原因は何でしょう? php 定義済み変数 たとえばアクセス解析で、 $ref = $_ENV['HTTP_REFERER']; とした場合、リンク元があれば取得できますが、ブックマークからのアクセスの場合エラーになってしまいますよね? こんな感じである値を取得できなかった場合にエラーが出てしまうことを防ぐ書き方はあるのでしょうか? 教えてください。 (サーバーの設定は別としてください) (phpのバージョンは4.3.0です。) アクセス解析カウンター アクセス解析カウンターの解らない事あるので教えてください http://hp.bird.to/info/access.htmlのです 1カウンターを表示する事できるでしょうか 2ページ事にアクセス数をしるにはどうするのですか 各ページに記述するらしいのですが何処に記述するのか <head>内にか<body>内にか解りません <script> document.write('<img src="http://tcnweb.ne.jp/~gg/cgi-bin/access2/access2.cgi?ref='+document.referrer+'" width=8 height=8>'); </script> 3この結果を他の人からもみえてしまうのですか 解る方教えて下さい CGIを使わずにアクセス解析は可能ですか? こんにちは。 プロバイダのサーバー(DION)を使っています。 ホームページにアクセス解析をつけようと思うのですが、 DIONでは自由にCGIが使えません。 提供されているアクセスログCGIの機能がイマイチなので、 自分で設置しようと考えているのですが・・・。 サーバーは変えたくないし、レンタル解析だと広告が出てしまうし・・・ CGIを使わずにアクセス解析ができるフリーソフトってあるのでしょうか・・? 機能的には、リンク元URLとドメインなんかが解析できるだけでいいのですが*** 何かありましたら補足しますので、もしご存知の方がいましたら教えてください。 よろしくお願いします。 取りこぼしが少ないアクセス解析(リンク元解析)CGI無いですか? ホームページ作ってます。 アクセス解析をページにつけているのですが、いまいちです。 当初からアクセス解析にはふなきちさんの「AshiatoLOG」(リンク先がわからないよぅ)を使用していました。 しかし、1日のアクセス数が増えてきた為、全然動かなくなることが多くなってきました。(結果を表示しない) で、しょうがないので、別のCGIを使用しようと思い、futomiさんの「高機能アクセス解析 CGI 」(http://www.futomi.com/)を入れました。 しかし、このCGI、私のページがフレームを多用しているってのもあるんでしょうけど、リンク元の取りこぼしが多いんです。特に、個人ページからの物はほとんど表示してくれません。(ページに記載されている"フレームページで使用するには"についてもやってみましたが、結果は変わらずでした) おかげで、不安定ながらもいまだ「AshiatoLOG」を併用している状態です(こっちは結構拾ってくれる)。 そこで、リンク元解析に特化したCGIで、いまだちゃんとサポートが続いているCGIってありませんか? もちろん、他の解析結果が出てもかまわないです。 リンク元は、「このアドレスから何人来た」というレベルの物で十分です。グラフ表示してもらえればなおありがたいです。 よろしくお願いします。 アクセス解析で奇妙なリンク元が表示されました 友人たちとのコミュニケーションに使っているHPでcgiboyのアクセス 解析を使っているのですけど、今までに見たことのないようなアクセスが ありました。 リモートホスト → cwa******.bai.ne.jp (*は数字です。) リンク元(リファ) → referrer%20blocked%20by%20AdSubtract これは何なんでしょうか? referrerとblockedから、リファラーをわからなくするためのものなのかな という気がしますが、そういうものがあるんですか? そういうものがあるのだとしたら、そういうアクセスをブロックする方法も あるのでしょうか? 携帯端末用アクセス解析CGI はじめまして。 よろしくお願い致します。 携帯サイトを運営しているのですが、つい先日から異様にアクセスが増加する現象がおきました。 そこで、どこのリンクから訪れているのか、アクセス解析をしたいと思いCGIを探しています。 どのアクセス解析CGIを見ても、リンク元もURLを取得するにはJavaScriptを使用しているので、i-modeやJ-SKYからのリンク元のURLを取得することができません。 JavaScriptを使用しないで、リンク元のURLを取得することはできないのでしょうか? かなり探してみましたが、見つからなかったので不可能な気もするのですが、もしJavaScript不使用でリンク元のURLを取得するような、アクセス解析CGIを御存知の方はお教え下さい。 よろしくお願い致します。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
>document.referrer >で取得できますよ。 ご丁寧に教えていただいて本当にありがとうございました。おかげ様で動作しました。