ホームページビルダー・グレート初心者講座

グレート初心者講座トップへグレート初心者講座 小技集へグレート初心者講座≠ヨグレート初心者講座 質問掲示板へ

HTML版 過去ログ
| 掲示板を見る | ホームに戻る | ワード検索 | 過去ログ |   

CGI形式によるアクセスカウンター(gif→png)

日時: 2011/12/25 14:44
識別: IDobqKFpuMdOw
名前: みつばち

はじめましてみつばちと申します。
今回http://beginners.atompro.net/sub_ccounter.htmlのサイトからダウンロードさせてもらったサンプルファイルを使ってアクセスカウンタを設置しました。
ファイル内のgif画像でカウンタはブラウザで表示されたので、自作のpng画像に変更しようと思いファイル名を同じにして、ccounter.cgi内のgifの部分をpngに変更しましたが表示されません。
pngファイルがダメなのか、cgi内でまだ変更しなくてはいけない箇所があるのかわかりません。
どなたかご教授よろしくお願いします。

Re: CGI形式によるアクセスカウンター(gif→png) ( No.1 )
日時: 2011/12/26 09:59
名前: EVE

#!/usr/bin/perl
#**************************************
# 《グラフィックカウンタ CGI型》
# ccounter.cgi?81a
#
# 作者:atom 作成日:01/21/2003
# mailto:mail@atom.hostmycgi5.com
#**************************************

# 入力データの解析
$prm0 = @ARGV[0];
if ($prm0 ne ""){
$keta = substr($prm0, 0, 1);
$ichi = substr($prm0, 1, 1);
$type = substr($prm0, 2, 1);
}

$datdir = "."; #カウンタファイルのあるディレクトリ
$datnam = "$datdir/count.dat"; #カウンタのファイル名
$count = 0; # カウンタ初期値
$imgdir = "."; #画像データのあるディレクトリ

#ここから下は変更する必要なし
if (index($ENV{'SCRIPT_FILENAME'}, "atom") > 0){
# $imgdir = "/images/gcounter"; #画像データのあるディレクトリ
$imgdir = "../../../images/gcounter"; #画像データのあるディレクトリ
# print "$datnam";
}

&count_get;
if ($prm0 eq ""){
&count_up;
}else{
&count_dsp;
}
exit(0);
#---cgi end---

sub count_get{
#カウントアップ処理
#カウンタファイルが存在すれば、カウンタ値を得る
if(open(FILE, "$datnam")){ #カウンタファイルを開く
$count = <FILE>; #カウンタ値の取得
close(FILE); #カウンタファイルを閉じる
}
}

sub count_up{
#カウントアップ後書き込み
open(FILE,">$datnam") || &cerror; #カウンタファイルを開く
$count++; #カウンタ値に1を加算
print FILE $count; #カウンタ値を記録する
close(FILE); #カウンタファイルを閉じる
&dummy_out;
}

sub count_dsp{
# カウンタの表示
if (($keta eq '') or ($keta == 0)){
$scount = $count; #カウンタをそのまま表示
} else {
$scount = sprintf("%$keta.$keta"."d",$count); #指定した桁数に変換
}
# グラフィックカウンタの表示
$ketas = length $scount;
if ($ichi <= $ketas){
$suji = substr($scount, $ichi-1, 1);
&count_out;
}else{
&dummy_out;
}
# print qq(<br>);
}

sub dummy_out{
#ダミー画像の表示
if(open(FILE, "$imgdir/no.gif")){ #カウンタ画像ファイルを開く
$cgrp = <FILE>; #カウンタ画像の取得
close(FILE); #カウンタ画像ファイルを閉じる
}
print "Content-type: image/gif\n\n";
print $cgrp;
}

sub count_out{
#画像データの出力
if(open(FILE, "$imgdir/$type"."$suji.gif")){ #カウンタ画像ファイルを開く
read(FILE, $cgrp, 10000); #カウンタ画像の取得
close(FILE); #カウンタ画像ファイルを閉じる
}
print "Content-type: image/gif\n\n";
print $cgrp;
}

sub cerror{
# エラー表示して終了
# local($file) = @_;
print "<center>Can't open error($datnam)<br>\n";
print "カウンタデータが開けませんでした<br></center>\n";
exit(0);
}
#---file end---


上のgifってなっている場所をpngに書き換えればいいだけじゃないかな?
Re: CGI形式によるアクセスカウンター(gif→png) ( No.2 )
日時: 2011/12/27 15:01
名前: みつばち

>EVEさん
書き換えましたが表示はされなかったので質問しました

ホームページビルダー・グレート初心者講座 Copyright © 2002-2005 aimix All Rights Reserved