window
トップページ
> 記事閲覧
CGI形式によるアクセスカウンター(gif→png)
日時: 2011/12/25 14:44
識別:
ID:Uehht.k24NL/
名前:
みつばち
はじめましてみつばちと申します。
今回
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さん
書き換えましたが表示はされなかったので質問しました
>>引用
返信フォーム
(上記スレッドに返信する場合は以下のフォームから投稿します)
題名
※必須
スレッドをトップへソート
名前
E-Mail
非表示
表示
URL
パスワード
記事メンテ時に使用します (メンテは該当記事の
アイコンをクリック)
返信内容
>>1 > #!/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に書き換えればいいだけじゃないかな?
※必須
エラーメッセージや内容などは省略せず詳細にご記入下さい
状態の設定
記事続行中
問題が解決した!
記事を取消したい
・問題が解決したら
解決
を選択して投稿して下さい
HELP(新しいウィンドウが開きます)
・既存記事の状態設定はメンテ(
アイコン)から修正する事ができます。
投稿内容をご確認下さい(記事の削除は出来ません)
クッキー保存