よろしくお願いいたします。
初心者ながらもHPを立ち上げ、Free配布のcgiもいくつか設置したのですが、
アクセス解析のcgiで、機能等に非常に満足のいくcgiが、参照元を取得するのに
「HTTP_REFERER」を使っていました。
私のHPは、フレームを使っておりまして、「HTTP_REFERER」では参照元が取得
出来ません。
どのようにすればよろしいのでしょうか??

ちなみに私の使っているサーバーは、HPとcgiが別サーバーとなっています。
解析するページからは『<img~~』で呼び出しています。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

HTTP_REFERERというのは、見ている人のブラウザが返してくる直前のURLを返す変数です。



フレームを使用しているページでも使えるはずですが、、、。
どのように使われたいのでしょう???

┌------index.html-----------┐
│┌---------┬----------┐│
││・left.html・│・right.html・││
│└---------┴----------┘│
└-------------------------┘とファイル名を仮定すると・・・

単に取り付けるだけなら
●フレームページの内側のページに付ける●
この場合でも充分アクセス解析が出来るはずです。
仮に、ダイレクトにleft.htmlのページとかを表示されなくても、
index.htmlの内部で表示しただけのページでも、カウントされ解析されるはずです。
left.htmlとかright.htmlとか上部のページなどフレームページ内に表示される好きなページのHTMLファイルに<img~タグを貼り付ければ出来るはず。

もし違う使い方をされたいのならば補足してくださいませ。
    • good
    • 0
この回答へのお礼

有難うございました。
何故かなかなかうまくいきませんで...(^^;
解析するページにJavaScriptを使ってRefererを送ることで何とか解決しました。

お礼日時:2002/02/17 14:17

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Aベストアンサー

>画像ヘッダとはどういうものでしょうか?

Content-type: image/gif
Content-type: image/png
Content-type: image/jpeg

など、画像タイプごとに決まっています。
<img>タグに普通の画像ファイルが指定されている場合は
Webサーバが画像ファイルの拡張子から判断して返してくれ
ますが、CGIから返されるデータの種類は拡張子からは判断
できないのでCGI内部からヘッダを返す必要があります。


●CGIがPerlの場合で、GIF画像をCGIから返す例
#!/path/to/perl
print "Content-type: image/gif\n\n";
open(GIF, "file.gif");
binmode(GIF); binmode(STDOUT);
print <GIF>; close(GIF);

もちろん、CGIからは画像フォーマットを返せばいいので、
ファイルから読まずにあらかじめCGIソース内に画像データ
を持っておいて出力する方法も可能です。


ちなみに、多くのCGIではHTMLコンテンツを返す場合が多い
ので、ヘッダは以下のようになります。

print "Content-type: text/html\n\n";

>画像ヘッダとはどういうものでしょうか?

Content-type: image/gif
Content-type: image/png
Content-type: image/jpeg

など、画像タイプごとに決まっています。
<img>タグに普通の画像ファイルが指定されている場合は
Webサーバが画像ファイルの拡張子から判断して返してくれ
ますが、CGIから返されるデータの種類は拡張子からは判断
できないのでCGI内部からヘッダを返す必要があります。


●CGIがPerlの場合で、GIF画像をCGIから返す例
#!/path/to/perl
print "Content-type: image/gif\n\n...
続きを読む

QCGI(HTTP://dbgw_relay.cgi)の呼び出しができま

CGI(HTTP://dbgw_relay.cgi)の呼び出しができませんでした。
サーバーへ接続できませんでした。リモート名を解決できませんでした:'dbgw_relay.cgi'

ホームページビルダーで作ったページに買い物かご(ダヴィンチカート)を設定したいのですが、ショッピングカートを設置するサーバを設定する段階で上記のエラーになってしまいます。これはどうしたら解決できるのでしょうか。どなたかご教示お願いいたします。(ちなみに初心者です)

Aベストアンサー

http://www.netdeoshigoto.com/nso_support/2008/02/cgihttpdbgw_relaycgi404.html

最低限 FAQ くらいは目を通してから質問するべきだと思うんだ

QHTTP_REFERERの値とセキュアーについて

ジャンプしてきたURLを参照し、CGIの中に設定した値と一致した場合のみ次のページに移動できるCGIを使用しているのですが、httpsからはじまるAspプログラムからそのCGIをとおすと、上手くHTTP_REFERERの値をとってくれません。

CGIは、http://cgiroom.nu/の「KEEP OUT」というプログラムです。(参照:http://cgiroom.nu/list/level_up/keepout/index.htm)

作者の方の掲示板を調べたり、質問をしたりしているのですが、これ!という解決策がみつかりません。

サポート掲示板に「HTTP_REFERERの値」についてかかれたものがあり、セキュアーかASPの仕様と何か関係があるのでしょうか?

身近にプログラムについてくわしい方がいないため、とてもこまっています。どうか宜しくお願いいたします。

Aベストアンサー

perlのCGIで同様の経験をしたことがあります。
どのようなブラウザをお使いになっているかわかりませんが、それは、おそらくInternet Explorerの仕様です。
非HTTPSからHTTPS、またはその逆の場合HTTP_REFERERは送信されません。
詳しくはマイクロソフトのサポートページに載っています。(REFERERで検索してみてください)
IE4と書いてありますが、それ以降のバージョンにも適用されている可能性があります。

QWindowsサーバー(IIS)対応のアクセス解析CGI

当方WEBデザイナーの事業を行っております。
あるクライアント様より、アクセス解析を設置するよう
頼まれてCGIを探しております。

下記の、CGIを使おうと思ったのですが、
http://www.futomi.com/library/accp.html
どうやらサーバーの仕様により利用できないと、
サーバー管理者に言われました。

サーバー環境
Windows Server 2003 Standard Edition

Windowsサーバー(IIS)を使用しているので、不可という事らしいです。
http://www.futomi.com/library/faq/general_faq.html#5


サーバー関係の知識が乏しくお恥ずかしいのですが、
上記の条件で対応できるアクセス解析CGIがあればお教えいただけますでしょうか。



解析機能としては、日別、週別、月別の解析が可能。
リンク元サイトの取得が可能。


です。

よろしくお願いします。

Aベストアンサー

Windows2003サーバーでApacheやActivePerlをインストールしたらCGIは動きそうですが・・・IISがいいんですよね・・・じゃーASPで組むのはどうでしょうかね・・・

Q[Perl] CGI_Lite.pmでファイル名取得できない

CGI_Lite.pmを使用してファイルをアップロードするCGIを書いていますが、ファイル名によっては、名前の途中までが消えてしまいます。
cgiとhtmlは、以下のとおりです。EUC、Shif-JISの両方で、また、LinuxとWindowsXPの両方で試してみました。


「可能性.txt」というファイルをアップすると、
「性.txt」というファイル名になります。

環境:
CGI_Lite.pmは、2つのバージョンを試してみました。
(1), CGI_Lite 2.02 http://search.cpan.org/~smylers/CGI-Lite-2.02/Lite.pm
(2), CGI_Lite 1.8 http://search.cpan.org/dist/CGI_Lite/

OSなど
(1), WindowsXP + AnHTTPd + Perl5.8.8
(2), SuSE Linux + Apache2.0 + Perl5.8.3



■アップするHTML
<html>
<form action='test.cgi' ENCTYPE='multipart/form-data' method='post'>
<input type="file" name="file1">
<input type="submit">
</form>
</html>

■アップされるCGI(test.cgi)
#!/usr/bin/perl
use CGI::Lite;

my $cgi=new CGI::Lite;
$cgi->add_timestamp(0);
$cgi->set_directory('./') or die $!;
$cgi->set_platform ('Unix');
$cgi->set_buffer_size (10000);
my %in = $cgi->parse_form_data();

print"Content-type: text/html\n\n";
print"-->$in{'file1'}\n";



以上、よろしくお願いします。

CGI_Lite.pmを使用してファイルをアップロードするCGIを書いていますが、ファイル名によっては、名前の途中までが消えてしまいます。
cgiとhtmlは、以下のとおりです。EUC、Shif-JISの両方で、また、LinuxとWindowsXPの両方で試してみました。


「可能性.txt」というファイルをアップすると、
「性.txt」というファイル名になります。

環境:
CGI_Lite.pmは、2つのバージョンを試してみました。
(1), CGI_Lite 2.02 http://search.cpan.org/~smylers/CGI-Lite-2.02/Lite.pm
(2), CGI_Lite 1.8 http...続きを読む

Aベストアンサー

sjisのまま扱いたいということなら、

ShiftJIS 「脳」の文字コード -OKWave
http://okwave.jp/qa3306321.html

の回答 No.2 にあるようなパターンで、ダメ文字の中に隠れている
'\' をエスケープすればうまくいきませんか?

デバッグのときなんかはいろいろ見落としがちですからね。
謝るこたないですよ♪


おすすめ情報