カウンターで「昨日の来訪者数」を表示させるには?

[上に] [前に] [次に]
はたの [E-Mail] [HomePage] 1998/09/15(火) 17:28:52
こんにちは、お世話になります。
wwwcount.cgiを使わせて頂きたいと思い、設置させていただいたのですが、
折角昨日の来訪者数がメールで送られてくるようになっているので、
なんとかこれをカウンター画像のそばにでも自動で
表示させる方法は有りませんでしょうか?
CGIについては、完璧に初心者ですので、宜しくお願い致します。
尚、wwwcount.cgiの設置は、問題なく終わっております。

B-Cus 1998/09/16(水) 16:20:08
さらっとwwwcountを見た感じでは

#
# アクセスログを初期化する
#
open(OUT, "> $file_access");
close(OUT);

の前に、

open(IN,"$file_access");
open(OUT,"yesterday_access");
print OUT <IN>;
close(IN);
close(OUT);

を挿入しておけば、一日前のデータがyesterday_accessに
保存されます。で、それを表示するには

sub count_yesterday {
 $l_count=0;
 open(L_IN,"yesterday_access");
 while (<IN>){
  if ( m/^COUNT/ ){ $l_count++; }
 }
 close(L_IN);
 return $l_count;
}

というのを適当な場所に放り込んで、最後の

 if ($mode eq "text") {
 printf("Content-type: text/html\n");
 printf("\n");
 printf("$cntstr\n");

に後に、

 print "yesterday: ",&count_yesterday;

などと書いておけばいいでしょう。試してないので動かなかったらごめんなさい。

また、GIFモードで動かす際は、wwwcount.cgi?yesterday と
呼び出せば昨日のカウントが表示されるようにするといいかも
しれませんね。

はっきりいって、GIFに対応させるのは簡単にできます。
まずはご自分でチャレンジされてみてはいかがでしょうか?

では。

Aurai [E-Mail] 1998/09/17(木) 00:07:17
スクリプトを二つ使うと日付の境目の表示が狂うかもしれませんね

はたの [E-Mail] [HomePage] 1998/09/18(金) 12:18:26
B-Cusさん、Auraiさん こんにちは。RES有り難うございます。
B-Cusにお書きいただいたように、スクリプトを追加してみたのですが、
Internal Server Errorが出ます。

telnetで調べてみましたら、
Unrecognized character \201 at wwwcount.cgi line 382. と表示されてしまいました。

スクリプトを追加する場所も変えてみたのですが、駄目でした。
非常に厚かましくて申し訳ないのですが、もしお手すきの時にでも、
このスクリプトみていただいて、助言頂戴出来ましたら・・
http://nnn.nu/wwwcount.txt にアップしてあります。
(実際に設置しているのは、もっと下のディレクトリですが)

初心者の訳の分からない質問、ご勘弁下さい。
よろしくお願い致します。

B-Cus 1998/09/18(金) 17:03:37
# 当然382行目は調べられたんですよね?

ん〜、全角空白は、インデントを見やすくするために使ってますけど、
実際には半角空白に変えてください(^^;

# あと、この経験で、変な所に全角文字を書くとどういうエラーが
# でるか、という知識を得られたはずです。次回同じエラーが出ても
# 自分で対応できますよね?

それから

 print "yesterday: ",&count_yesterday;

の位置が違ってます。

あと、いくつか(僕の)間違いを。

> open(OUT,"yesterday_access");

open(OUT,">yesterday_access");

> while (<IN>){

while (<L_IN>){

に変えてください。あと、telnetして、事前にyesterday_accessという
ファイル作っておいてくださいね。

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