この人頭いいなと思ったエピソード

上手く説明できないのですが、読んでください。

これまで訪問カウンターなどを設置し、
そのカウンターを表示するcgiは動かせています。

この度、
どこから来たかを記録するcgiを作ろうと思っています。
ただ、「どこから来ましたか」などの文言を出し、訪問者にキックさせるのではなく、
訪問者は知らない内に本文アドレスが記録される、
という風にしたいのです。

ということで、
ベースはhtmlですが、その中にどのようにして当該cgiを埋め込むか、
を教えてください。

宜しくお願いします。

A 回答 (2件)

No.1です。


いや、
>「あなたは<img src="./cgi-bin/houmon.cgi">人目の訪問です。」
に組み込めばよいだけだと申してます。
 ただ、その場合、当然ですがHTTR_REFERERはそのカウンターページになりますから、リンク元まで調べたければ、そのindex.htmlをCGIにしてしまえばすみます。

[例]index.html
★.htaccessで、index.htmlをCGIとして動作するよう指定する。
★タブは_に置換してあるので戻す。

#!/usr/bin/perl

print q~
Pragma: no-cache
Cache-Control: no-cache
Expires: -1
Content-type: text/html\; charset=Shift_JIS

~;

while(<DATA>){
s/<!--HTTP_REFERER-->/$ENV{'HTTPREFERER'}/;
print;
}
__END__
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
_<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
_<title>サンプル</title>
</head>
<body>
_<div class="header">
__<h1>タイトル</h1>
__<p>あなたは<!--HTTP_REFERER-->からきました。</p>
_</div>
_<div class="section">
__<h2>見出し</h2>
__<p>・・・</p>
_</div>
_<div class="footer">
__<h2>文書情報</h2>
__<dl class="documentHistry">
___<dt id="FIRST-PUBLISHED">First Published</dt>
___<dd>2012-08-10</dd>
__</dl>
_</div>
</body>
</html>

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで

 拡張子は、Windowsというお馬鹿なOS以外、またネットワークでは関係ないです。

 まあ、ちゃんとしたウェブサーバーでしたら、ログは残っているのでそれを参照すのが効率的なのですが・・

※javascriptでも良いでしょう。
    • good
    • 0
この回答へのお礼

お手間を取らせ、大変申し訳ないのですが、
私のレベルでは理解不能でした。
お世話になりました。

お礼日時:2014/01/26 21:54

その、カウンターCGIに組み込めばよいだけですけど・・

    • good
    • 0
この回答へのお礼

早速有り難うございました。
折角お教えいただきましたが、
どうも質問の仕方が悪かったようで申し訳在りません。

>その、カウンターCGIに組み込めば

 私のカウンター設置は一般的かどうかは分かりませんが、
 「あなたは<img src="./cgi-bin/houmon.cgi">人目の訪問です。」とやっています。
 これは、引き金(キック)は引かせていませんが、カウンターが表示されてしまいます。



 質問が下手だったのですが、キックさせないだけではなく、
 【cgiが動いていることが影も形も残さないで】が抜けていました。
 
 表示されたページだけ見ていたら、裏でログが取られていることが分からないようにしたいのです。


  そしてこれも忘れていましたが、SSIが使えませんので、
  <--exec cgi="houmon.cgi"-->もダメです。


 要するに、html文書の中で単純にcgiを実行したいのです。
 宜しくお願いします。  

お礼日時:2014/01/26 13:51

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