CJ Club TOP/CGI Script/i-mode/J-Sky/PG Counter
|
PG Counter
|
i-mode/J-Sky自動判別カウンタ
■特徴とサンプル
- 機能はカウント機能のみ。カウント以外の情報は取得しない
- J-SkyにはPNG画像、i-modeその他にはGIF画像で出力する
- 日別にカウントを集計
- ログが一定のサイズを超えると古いものから削除
- オンラインから総カウント数を編集
- SSIでのカウンタ出力、カウンタアップも可能
- i-mode/J-Sky/その他のそれぞれのカウントも取得
サンプル
□カウント集計ページ
■ダウンロード
まず次のファイルをダウンロードしてください。ダウンロードする場所は好きなところで結構です。
[pg.lzh(9KB/Vectorサーバ)]
|
[pg.zip(9KB)]
|
[pg.lzh(9KB)]
|
v0.4
ダウンロードが完了したら解凍してください。念のためこのページも保存することをオススメします。
このCGI はフリーですが規定通りに使ってください。
オリジナルスクリプトです。ということは、著作権欄を消さない限り再配布自由です。
■ファイル確認
解凍 したあと、以下のファイルがきちんとあるか確認してください。
- pg.cgi -メインプログラム
- pg.log -カウントログ
- Readme.txt -ソフトマニュアル
- pg.htm -設置マニュアル
- [gif] -GIF画像の入ったファイル
- [png] -PNG画像の入ったファイル
■設定変更
最小限の設定変更の説明です。メモ帳などで「cm.cgi」のファイルを開いてください。
1行目
#!/usr/local/bin/perl
これを正しいパスに書きなおしてください。だいたいのサーバではこのままでOKです。
15行目
$lock= 1;
ファイルロック機構を使うか決めます。1=使う 0=使わない
17行目
$day = 30;
ログ取得日数を指定します。初期のままだと30日取得したら順に消えていきます。
■サーバに送る
基本設定ができたら、サーバに送りましょう。ここでは「public_html」の下に
[ pg ]というディレクトリを作ってそこに送るという仮定で説明します。
i-mode/j-sky/doti兼用カウンタとして使う場合、
[ pg ] というディレクトリの下に [ gif ] [ png ]というディレクトリを作りそこにそれぞれの数字画像をアップしてください。
[public_html]┐
├[pg]┐(ロック機構を使う場合[777or755])
│ ├ pg.cgi [755](メインCGI)
│ ├ pg.log [666](ログファイル)
| ├ [gif] - 0.gif / 1.gif /...../ 8.gif / 9.gif (i-mode他用画像)
│ └ [png] - 0.png / 1.png /...../ 8.png / 9.png (J-Sky用画像)
│
└ index.html
[ ]内の数字は送るときのパーミッションです。
ファイル名
|
モード
|
パーミッション
|
数字用画像(*.gif/*.png)
|
バイナリーモード
|
特に無し
|
pg.cgi
|
アスキー(テキスト)
|
755
|
pg.log
|
アスキー(テキスト)
|
666
|
■テスト
アップできたらテストをしてみましょう!カウント集計一覧にアクセスします。
- 例:http://www.***.com/pg/pg.cgi?c
pg.cgi のあとに ?c とつけてアクセスします。
■カウンタを表示する準備
cm.cgi の
22〜25行目
$i[0] = "./gif";
$i[1] = "./png";
カウンタを呼び出すとJ-Skyの場合 $i[1] にあるPNG画像が、それ以外の場合 $i[0] にあるGIF画像が表示されます。
*http://〜のURLでの指定も可能です。
数字画像を用意します。
*JPEG画像は、使えません! 使えるのはGIF/PNG画像だけです。
以下の数字ファイルを用意してください。
0.gif / 1.gif / .... / 8.gif / 9.gif ($i[0]のディレクトリに入れる)
0.png / 1.png / .... / 8.png / 9.png ($i[1]のディレクトリに入れる)
数字に合った画像にしてくださいね。適当なのがない場合は、同封したものをお使い下さい。
■ログ取得とカウンタ表示方法
画像の場合例(5桁)
<img src="./pg/pg.cgi?5"><img src="./pg/pg.cgi?4"><img src="./pg/pg.cgi?3">
<img src="./pg/pg.cgi?2"><img src="./pg/pg.cgi?1">
?以降の数字が桁数です。ので6桁にしたい場合は<img src="./pg/pg.cgi?6">を1番最初に追加します。
1234 カウントの場合、5桁表示だと 01234 と表示されます。カウントアップは1桁目 pg.cgi?1 が表示されると行います。
*) タグはなるべく改行せずに書きましょう .pngは書かなくてもOK
また、i-modeのアクセス数、J-Skyのアクセス数、ドットiのアクセス数を個別に表示できます。
i-mode: pg.cgi?*+i
J-Sky : pg.cgi?*+j
Doti : pg.cgi?*+.
というようにします。 * は桁数の数字を入れます。
*) 1ページに表示するのはひとつのカウンタに限定してください。2重カウントをしてしまいます。
SSIの場合例
24・25行目
$SSI = 0;
$SC = 0;
$SSIを 1 に変更
$SCは表示したいカウントを指定(0=総カウント 1=imode 2=jsky 3=doti)
<!--#exec cgi="./pg/pg.cgi"-->もしくは
<!--#include file="./pg/pg.cgi"-->
SSIではひとつしか表示できません。CGIとの併用は可能です
*) SSIには以下のサーバのバージョンなどによって注意点があります
(1)コマンド名に絶対パスを指定できない
(2)パス名で上位のディレクトリ(..)を参照できない
(3)コマンドの引数を渡せない
とほほのWWW入門より引用
ダミー画像を表示
基本的に数字を表示せずにカウントを取得する方法です。
20/21行目
$D[0]= "./gif/d.gif";
$D[1]= "./png/d.png";
ここにダミー画像として使う画像を記入してください。http://〜のURLでもOKです。そして以下のように記述します。
<img src="./pg/pg.cgi?i">
これでOKです。
■総カウントを変更する
cm.log の1行目に以下のように書いてください。
- 0<>0<>カウント数<>0:0:0:0:<>
すると、総カウント数が途中からカウントされます。オンラインでも変更可能です。以下のように直接アクセスしてください。
- 例: http://www.***.com/pg/pg.cgi?カウント数+パスワード
+ は半角で入力してください。
■ J-Skyで画像が表示されない
J-PHONEの携帯にはいわゆる「ステーション対応機」と「ステーション非対応機」とがあります。
前者は最近の機種、後者は少し前の機種となります。<img> タグの中での CGI は対応機/非対応機で違いがあるようです.
[対応機]
<img> タグの中で hoge.cgi?1 と書くことができる。ただし、Location ヘッダで画像ファイルを指定してあげなければいけない。
Content-Type を返して画像ファイルの中身を送るのではダメ。(v0.3でLocation方式に変更しました)
[非対応機]
<img> タグの中で hoge.cgi?1 と書くことができない。拡張子が .cgi となっているので画像ファイルとして認識されない。
ただし、CGI の拡張子を .png とすることで対応機/非対応機共に画像を表示することができるようにります。
これは J-Skyウェブ が Content-Type ではなく拡張子を見てファイルの種別を判別しているというイマイチな仕様なためです。
しかし、 .png という拡張子をCGIとして扱えるかどうかはサーバの設定によりますのでこれはどこでも使える方法というわけではありません。
したがって、画像が表示されるかどうかは以下のようになります。
CGIの名前
|
対応機
|
非対応機
|
hoge.cgi?1
|
○
|
× (*1)
|
hoge.png?1 (*3)
|
○
|
○ (*2)
|
(*1) Location ヘッダで画像ファイルを指定しなければならない
(*2) ファイルの中身を直接送っても大丈夫
(*3) サーバによって使用できないところもあり
古い機種にも対応するため、 .png をCGIとして扱えるならそれが一番ですが、それが無理な場合、
Location ヘッダで画像を指定する方法で CGI を書き、最近の機種でしか画像が表示できないことに我慢するしかないようです。
*)表示されなくてもカウントアップは正常に行われます。
(有賀さんからの情報をほぼ引用させていただきました。ありがとうございますm(_ _)m)
■その他
わからない、設置できない、バグが出たなどの情報はサポート掲示板までお願いします。
@niftyでの設置方法をこたさんが紹介してくださってます。
http://homepage2.nifty.com/okataka/
更新履歴
00/11/29 v0.1-配布開始。
00/12/29 v0.2-J-Skyの不具合修正、ドットiのカウントも取得
01/02/02 v0.3-J-Skyに表示されるよう対応と注意、ダミー画像カウント機能追加、それぞれの機種別カウント数の表示
01/02/07 v0.4-i-modeで表示されないのを修正、SSIで引数を使わないよう変更
□TOP