プロが教える店舗&オフィスのセキュリティ対策術

自作cgiでアクセスカウンタを作成しました。
作成当初はcgi呼び出しとしてSSIの<!--#include virtual="~counter.cgi" -->を使用してそのときは何の問題もなかったのですが、サーバーの都合でSSIをとりやめて<IMG>タグを使用せざるを得なくなってしまいました。
やむを得なくHTML側のSSIの部分をそのまま<IMG="~">に書き直したのですが、これがうまく動きません。
具体的にいいますと、カウンタの値はページには反映させたくないので透過gifをよみこませることにして、HTML内のカウンタの<IMG>タグは一つだけにしてあります。その結果が、訪問一回めとブラウザの更新をしたときだけにしかカウンタが動きません。ブラウザのキャッシュに関係しているのかもしれないと思い、<meta>タグにキャッシュしないように入れてみたのですが、結果が変わりません。
動作環境はwin98 IE5.5とmac9.2 IE5.2で確認しています。
おわかりの方ご教授よろしくお願いします。

A 回答 (4件)

それは障害ではなくて仕様なのでは?


一回みたらしばらく同一のIPアドレスからはカウントしないとか
クッキーをつかって一度きたらシバラクカウントしないとか
そのスクリプトのマニュアルに書いてありません?

この回答への補足

回答ありがとうございます。
SSI使用時はIPやCOOKIEに関係なく動いたのでそれはないと思います。

補足日時:2003/06/06 17:04
    • good
    • 0

> <meta>タグにキャッシュしないように入れてみたのですが、結果が変わりません。


metaタグによるキャッシュコントロールには数種類ありますので、
片っ端から記述してみるのもよいかと。(ExpiresとかLast-Modifiedとか)

でも、IEなら↓で効いた記憶があるのですが・・・
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

IEの設定で"インターネット一時ファイル"にある"ページを表示するごとに確認する"に設定してみても状況は同じですか?

この回答への補足

ブラウザの設定は試してみました。
キャッシュを空にして、キャッシュしないように設定してからアクセスしたのですが、結果は変わりません。ここまでの結果では根本的に原因はキャッシュによるものではないように思えます。

補足日時:2003/06/05 21:18
    • good
    • 0

print"Content-type: image/gif\n";


print"Pragma: no-cache\n";

じゃなかった?

この回答への補足

ご指摘ありがとうございます。
ご指摘のように変更させていただいた結果、
カウンタに対しての結果は変わりませんが、その代わりにgifがキャッシュされなくなりました。と言うよりロードされなくなりました。つまり画像が見つからない時のXマークになります。
この方法では難しいのでしょうか。

補足日時:2003/06/05 20:09
    • good
    • 0

IMGタグで指定される画像に関してはキャッシュコントロールしてないのでは?


画像を生成しているCGI側で
Pragma: no-cache
をつけてみては?

この回答への補足

回答ありがとうございます。
申し訳ないことに私はCGIに深くないのですが、
CGIはMacJperl5を使用しています。
おっしゃっていることを想像して実行しましたが、思うような結果が得られません。

open(FP,"<test1.gif");
print"Content-type: image/gif\n\n";
print"Pragma: no-cache\n";
binmode(STDOUT);
print <FP>;
close(FP);

根本的に間違っていますか。
お願いします。

補足日時:2003/06/05 19:42
    • good
    • 0

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