なぜ?カウンターが2づつ上がる?

[上に] [前に] [次に]
困ったちゃん(T_T) [E-Mail] 2000/05/23(火) 06:41:26
CGIを勉強し始めて、まだ間もない 困ったちゃん(T_T) です。
参考書を見ながら、なんとかSSIカウンターを作成したのですが、
なぜか、2づつ上がってくのです。

URLは、
http://kiaa.gr.jp/test/up.shtml

CGI ファイルは、
http://kiaa.gr.jp/test/count_cgi.txt

にアップしました。

最初の1回目は、1カウントアップするようですが、次に更新すると、
2づつ上がってしまいます (T_T)。

1 + <OUT>; ←で、なぜ2カウントアップするのか、分かりません。
どーか、どーか、よろしくお願い致します。。。(T_T)

+_+ 2000/05/23(火) 07:00:36
http://kiaa.gr.jp/test/count_cgi.txt
から抜粋

-------------------------------
# カウンタ値の取得
seek(OUT, 0, 0);
$todaycount = 1 + <OUT>;
$yesterdaycount = 0 + <OUT>;
$totalcount = 1 + <OUT>;
$lastday = <OUT>;
------------------------------

よく見てかんがえようね。

謎の人 2000/05/23(火) 11:57:43
まさか、一回のアクセスで2回SSIを起動しているとか?

+_+さんへ
よく見たけど、わかりません!

バギンズ 2000/05/23(火) 12:30:31
私もローカルで確認しましたが、
CGI自体には問題ないように思います。

える 2000/05/23(火) 16:51:37
$todaycount = 1 + <OUT>;
$totalcount = 1 + <OUT>;
カウントログもよーくみてみましょう。

困ったちゃん(T_T) 2000/05/23(火) 19:50:34
みなさん、ご返答ありがとうございます。

そーなんです。えるさんのおっしゃる通りログを見ると、実際に表示
されている値よりも、1多くなってます。。。(T_T)

$todaycount を書き込み、それを表示しているはず(?)なのに、
なぜか、食い違っているのです。。。なぜ???

ちなみにログは、
http://kiaa.gr.jp/test/count.cnt
↑こちらです。

+_+ さん、えるさんがおっしゃる通り、

$todaycount = 1 + <OUT>;
$totalcount = 1 + <OUT>;

↑ここに問題があるようなので、もう一度よーく考えてみます。

壮観功 2000/05/23(火) 20:24:21
ちゃんと一つずつカウントされますよ??

wosamu 2000/05/23(火) 21:31:23
私も、SSIで呼び出してないけど
CGI単独で呼び出すと正常に1ずつカウントされますねぇ。
+_+さんとえるさんは2ずつカウントされる理由がおわかりのようですけど。
どうも、CGIは難しいですね。

念のためなのですが、SSIでの呼び出しの部分のソースコードも
テキストファイルで公開していただけないでしょうか?

困ったちゃん(T_T) 2000/05/24(水) 07:38:23
[[解決]]
wosamu さんのおっしゃる通り、CGI単独では1ずつカウントされるようなので、
up.html をSSIを使わず、CGIで出力することにしました。

こんな困ったちゃんに、みなさん本当にありがとうございました。。。(T_T)
でもなぜ、SSIだと2ずつ上がるのだろう・・・

謎の人 2000/05/24(水) 09:42:27
解決、ちょっと待った!

>SSIだと2ずつ上がるのだろう
これ、なんとかしましょうよ〜

+_+さん、教えて!

Fuji.♪ [E-Mail] [HomePage] 2000/05/24(水) 11:12:14
純粋に。

WWWブラウザが2回HTMLリソースを参照しているとかいうことは?
キャッシュ確認の場合の処理などの問題で。

#昔NetscapeとIEで、どちらかだと1だけ、もう一方だとと2〜9位カウントアップする素敵なカウンタを見たことがありましたが。

バギンズ 2000/05/24(水) 12:02:12
私も原因が知りたいです。
リロードした場合だけ2カウントアップされるとかはあるのでしょうか?

それと、ちなみに、SSIの指定の方も教えて欲しいのですが...
まぁ、普通は#exec cmd="./count.cgi"とかで呼んでるだけでしょうけど...

困ったちゃん(T_T) 2000/05/24(水) 12:12:03
バギンズさんのおっしゃる通り、
<!--#exec cmd="./count.cgi"--> ←で呼び出してます。

壮観功 さんのように、きちんと1ずつアップされる方もいらっしゃる
ようなので、やはり キャッシュの問題なのでしょうか・・・???

wosamu 2000/05/24(水) 14:35:57
NN4.6でみると1ずつカウントアップしますね。
(<FORM>が無いのでボタンとかは表示されませんが・・・)
アプリケーション依存ということはやはりキャッシュの問題なのかな?
けど、SSIカウンタ全部がこういうことは無いと思うので
回避策はあると思いますけど。

B-Cus 2000/05/24(水) 14:42:42
まず HEAD で読んで GET してるから?
If-Modified-Since で読んで、Last-Modified が取得
できないので、再度 GET してるから?

Syn [E-Mail] 2000/05/24(水) 14:49:22
んー、でも +_+ さんやえるさんの発言は、スクリプト自体に問
題があることを指摘しているように思えるのですが、それは関係な
いってことなのでしょうか… 気になります。

Fuji.♪ [E-Mail] [HomePage] 2000/05/24(水) 17:16:48
とりあえず、ローカルでそのまま(SSIとしてではなく)動かして見て、常に1しかカウントアップしなかったらスクリプトには問題ないと思うのですけどねぇ・・・。
どうなんでしょう。 (^^;

wosamu 2000/05/24(水) 17:54:36
私が試した範囲ではCGI呼び出し、SSI呼び出しともに
1ずつカウントアップするのですけどね。
上にも書きましたけど。
困ったちゃん(T_T) さんも
>CGI単独では1ずつカウントされるようなので
とおっしゃっているようですが。

バギンズ 2000/05/25(木) 14:01:40
up.shtmlIE5で見た場合、リロードするとカウンタが
1つ進む場合と2つ進む場合があります。

で、ちょっと気になったのですが
up.shtmlの中にこんな部分が...

<TD background="#c0d0f0" bgcolor="#c0d0f0" align="center">

background="#c0d0f0" はコーディングミスなのでしょうが
ブラウザはどう認識するのだろう?
イメージデータとしてアクセスしに行って...
ないから...その後どうなる?

これがカウンタ2アップの原因とかってありえますか?

バギンズ 2000/05/25(木) 14:03:28
>up.shtmlIE5で見た場合
up.shtmlをIE5で見た場合

です。(^_^;)

もた 2000/05/29(月) 19:31:11
こんにちは、先週からこのスレッドを興味深く拝見していたのですが、もう収束
してしまったでしょうか?

でもって、私も自分のサイトに置いてテストしてみたところ、確かに2個ずつ上がりました。
サーバーのアクセスログでも1度のリロードで2回IEからGETが送られるのが確認できました。
その後、background="#c0d0f0"を削除したところぴたりと止まりました(^_^;
IEによって↑が自己参照と解釈されたのでしょうか。

謎の人 2000/05/29(月) 21:33:09
もたさんとバギンズさんに拍手!

バギンズ 2000/05/29(月) 22:13:18
すっかり忘れてました(^_^;)

>もたさん
検証していただいてありがとうございます。m(_ _)m
本当の原因を知りたいところですね。

さて、困ったちゃん(T_T) は困ったままなのでしょうか?(笑)

[上に] [前に] [次に]