• ベストアンサー

アクセス解析はフレームにつけるべき?

フレームのメニューにカウンターを設置し、同時に $refer = $ENV{'HTTP_REFERER'}; で、リンク元URLを検出し、ログファイルに記録して います。 ただ、結果がメニューのURLとしてログが残ってしまい 肝心のどこから来たのかがわかりません。 これを改善するにはどうすればよろしいでしょうか? ・HPはフレームで組んであり、メニューとメインにわかれている ・index.htmにつけるとしてjavascriptなどで.cgiを動かすことはできますでしょうか? そのほかお気づきの点がありましたらご指導くださいm(__)m

  • CGI
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

カウンタCGIの仕様しだいで使えない手ですが、 フレーム内のページのjavascriptで親(parent)フレームのrefrerを取得してcgiに渡すというのが割とよく見る方法です。 <script type="text/javascript"> var ref; if(parent)ref=parent.document.referrer; else ref=document.referrer; document.write('<img src="count.cgi?refrer='+ escape(ref)+">"); </script>

ma_trix
質問者

お礼

回答ありがとうございました。 コードをHEAD~HEADの間に入れて、img srcのところを変えてやってみましたが、ダメでした。 アクセス元は取れるようになっているのに、フレームがダメなんですよね?

関連するQ&A

  • アクセス解析をつけたいのですが、フレームのあるページでは無理?

    アクセス解析でログを取るところまでPERLで完成しました。 ただ、取りつけたいホームページがmenuとmainにわかれているホームページのせいか、ログがmenu(cgi呼び出し元)のURLが記録されてしまうんです。 別のリンクから入っているのに・・・。 googleのanalyticsはindex.htmにjavascriptとして記載していますが、yahooとかgoogleとかちゃんとログが残っています。これを利用しているので自分で作るのは要らないといえば要らないのですが・・・。 おそらくgoogleのanalyticsと同様にindex.htmにjavascriptとして貼って、perlのソースを変えるのでしょうが、具体的になにをすればよいか思いつきません(ToT) もしわかる方がいらっしゃったら改善点を教えてください。

    • ベストアンサー
    • Perl
  • 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とどのように一致させるのか わからないのです。 どのように記述すれば良いのでしょうか?

    • ベストアンサー
    • Perl
  • アクセス解析でのHTTP_REFERERについて

    アクセス解析のCGIを作ってみようとがんばっています。そこでお伺いしたいのですが、 $ln = "$ENV{'HTTP_REFERER'}"; と単純にやればリンク元が取れると思っていたのですが、なぜか何度やってみてもHTTP_REFERERだけがだめでした。他の環境変数は問題なくファイルに書き出せるのですが、何をやってもリンク元の部分だけが空白になってしまいます。本をいくら読んでみてもわからず、ほとほと困り果ててこちらに参りました。 REFERERだけは保存するのに何か特別な処理が必要なのですか?解説が面倒なようでしたら Yes(処理が必要)/No(そんなことない君のスクリプトがどこかおかしい) だけでも構わないので教えていただけると有り難いです。 Tripodの無料HPを使っています。

    • ベストアンサー
    • Perl
  • フレームページでSSIを使ってアクセス解析

    フレーム内ページ(main.shtml)にSSIを使ってリンク元を取得したいのですが、どなたか良い方法はないでしょうか。フレームページはindex.htmlです。 SSIでなければ"parent.document.referrer"を使ってCGIで取得するのは設置したことはありますが、SSIだとリンク元が親フレーム情報しか得られません。なんとかSSIでやりたいのですが…。リンク元以外の取得はできますがリンク元が取れません。SSIの現在の記述は下の通りです。 <!--#exec cgi="./acc.cgi"--> どうぞ、暑いのにすいません、教えてください。

    • 締切済み
    • CGI
  • アクセスログ

    お世話様です。 勉強を兼ねて「アクセスログ」を作成しています。 TOPページは「index.htm」で作成し、ログ書込み部分はASPで作成しています。JAVAScriptを使用して参照元URLを記録したいと思っておりますが、なかなか上手くいきません。 そこで、苦肉の策で考えたのが <BODY> ~略~ <SCRIPT language="JavaScript"> <!-- url = "<IMG src='./analyzer.asp?url=" ; url = url + document.referrer + "'>"; document.write(url) //--> </SCRIPT> ~略~ </BODY> とまぁ、<IMG~タグでASPを呼び出して戻り値に画像を指定する方法です。 ここからが本題、 「analyzer.asp」でログを記録する所までは良いのですが ASPで「戻り値」を指定する方法がわかりません。 イメージ的にはCGIなどでカウンターの表示をするのと同じような感じを持っていたのですが・・・ 皆様、ご教授下さい。お願い致します。

  • アクセス解析 フレーム SSI .htaccess

    CGIでアクセス解析を作りました。 SSIが使えないので、メニューフレームをCGIで作りました。 しかし、リファラが全てindex.htmlになってしまいます。 これではアクセス解析の意味がありません。 うちのサーバーは .htaccess SSI が使えません。 アドレスをindex.cgiに変えてしまうのはなるべくなら避けたいです。 どうすればきちんとリファラがとれますか?

    • 締切済み
    • CGI
  • フレームとアクセス解析は相性×?

    左右2つに分かれるフレームを組んだホームページでアクセス解析のCGIを設置したいのですが、 index.htmlに設置すると作動せず メニューとして固定された左側のページに設置すると、作動はするもののリンク元サイトが全てindex.htmlになってしまいました。 過去の質問を検索してみると「enter」などと書かれたページを最初に起きそこにCGIを設置するという方法がありましたが、この方法は使いたくありません。 どうにかしてきちんとリンク元を表示させることはできないでしょうか? 「ここのCGIはフレームでもちゃんと動くよ」なんていうアドバイスも大募集です。 どうか知恵をお貸しください!!

    • ベストアンサー
    • CGI
  • frameとJavaScriptの共存

    <html><head><title> INDEX.HTML </title></head> <frameset rows="70%,*"><frame src="./main.html" name="MAIN"><frame src="./menu.html" name="MENU"></frameset></html> の中に下記のJavaScriptを埋め込みたいのですが どうすればいいのでしょうか? <SCRIPT Language="JavaScript"> <!-- document.write("<img src='http:/xxx/acclog.cgi?"); document.write("referrer="+document.referrer+"&"); document.write("width="+screen.width+"&"); document.write("height="+screen.height+"&"); document.write("color="+screen.colorDepth+"'>"); // --> </SCRIPT> Java Scriptを埋め込んだらフレームが正常に働かなくなりました。 どのようにすればいいのでしょうか?アクセス解析なのでindex.html に設置したいのですがいいアドバイスよろしくお願いします。

    • ベストアンサー
    • HTML
  • フレーム転送対応のアクセス解析

    フレームURL転送に対応したアクセス解析を探しています。 自分で設置するCGI(perl)でもレンタルでも構いません。 最低生ログとリンク元URL(1回しかアクセスが無くても表示される)、 できればOSやブラウザや解像度がわかるといいです。 レンタルではCGIBOYさんやDo-ASAP!さんを試してみたのですが フレーム転送には対応していませんでした。 自分で設置するCGIではKENT-WEBさんのAccess Repportの 改造版を試してみたのですが上手くログがとれませんでした。 何か良いサービスやCGIがありましたら教えてください。

    • 締切済み
    • 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が認識されてしまいます。ですが、最初のリファラーの値をずっと最後のページまで持っていたいのです。 どなたか、方法がわかりましたらご教授願います。よろしくお願いいたします。

    • ベストアンサー
    • Perl