仕様
1) このフォルダ「Acci_Track」には、以下の5つが含まれています。
・acci.log 取得したアクセスデーターの保存ログ
・barra.gif バーグラフのgif画像
・chaser.cgi アクセスデーターを取得するcgi
・MANUAL.txt このテキスト
・showrank.cgi 集計を見る為のcgi
2) それぞれのhtmlのアクセス数によってランキング表示。
3) それぞれのhtmlのアクセス順をランキング表示。
4) パスやパーミッションなどの簡易設置チェック付き。
5) パールバージョン4でも動作確認済み。
パーミッション
・acci.log 606(または、666)
・barra.gif そのまま
・chaser.cgi 705(または、755)
・showrank.cgi 705(または、755)
設 定
集計をしたいhtmlまたはBBSのcgiなどの<body>〜</body>内の好きな所に以下のタグをコピー&ペーストしてください。
htmlの場所によって、またはプロバイダーの指定などにより、パスが違う場合もあるので、それぞれのhtmlからchaser.cgiまでのパスを記してください。
例その1:<img src="../Acci_Track/chaser.cgi" width=1 height=1 alt="">
例その2:<img src="http://hpcgi1.nifty.com/accitano/Acci_Track/chaser.cgi" width=1 height=1 alt="">
たいていは目立たない、</body>の直前辺りが良いでしょう。
それぞれのファイル名
「acci.log」「showrank.cgi」は、名称をお好きなのに変更してください(拡張子はそのまま)。
htmlのソースを見れば、このcgiが何処に入っているのかが分かり、ブラウザーから例えば、
http://www.***.***/~***/Acci_Track/acci.log
や
http://www.***.***/~***/Acci_Track/showrank.cgi
などとすれば、第三者もデーターを見ることができてしまいます。
それが気にならない人は、そのままでも良いかもしれません。
また、ブラウザーから http://www.***.***/~***/Acci_Track としたら、「Acci_Track」内のモノがリスト表示されてしまったら、適当な内容のindex.htmlというのをその中に入れましょう。
それが気にならない人は、そのままでも良いかもしれません。
chaser.cgiの初期設定について
1) $cifra = '000'; # パスワード(半角英数字)
http://www.****.***/~***/Acci_Track/chaser.cgi?check=パスワード で初期設定によるファイルのパーミッションやパスなどの簡易チェックをするが為だけのモノなので、000以外の簡単なもので。
chaser.cgiの後ろに ? + check + = そのパスワード、を付け加えてブラウザーからアクセスします。
2) $lock_mode = '2'; # ファイルロック( flock=1 no=0)
flock=1がお勧め。
3) $cuanto = '2'; #サーチhtmlの数。【重要】
htmlなどを見ている順番及びその表示数の指定をします。
「→」で繋ぎ、例えば、サーチhtmlの数が4なら「A → B → C → D」と表示されます。
仮に、「A → B → A → C → B → D」とアクセスしても、重複は無視しますので、
この場合、「A → B → C → D」と表示されます。
同様に、chaser.cgiを記述していないhtmlは無視されます。また、index.htmlには記述しない方が良いです。
しかし、サーチhtmlの数ですが、どのくらいの数のhtmlにchaser.cgiを記述するかのバランスがあります。仮に10個のhtmlに、そしてサーチhtmlの数をその4としたら、重複しないとは言っても最大、10×9×8×7 = 5,040通りの膨大な数の表示となります。
もともとこのAcci_Trackは、それぞれのhtmlアクセスランキングだけに限らずも、訪れた人がどのhtmlに行き、その次には?と行った流れを見るものなので、記述するhtmlの数とサーチhtmlの数のバランスは、該当htmlの表示スピードから、多くても500通りまでに抑えておいた方が良いと思われます。
4) $hasta = '30'; # そのアクセスログを削除するまでのタイムアウト時間(分)
内容によってさまざまですが、そこに滞在している時間ってどのくらいなのでしょうか?
他のサイトに行って戻ってくる場合もあり、このケースは、このcgiの集計には要らないので取り敢えず30分としましたが。
哀しいけれど、Aだけを見て別なサイトに行ってしまった場合などを含め、指定分数が経つとそのアクセスデーターをリセットするようにしてあります。
当然、常時接続などでIP固定の場合でも、指定時間後には集計されます。
chaser.cgiの任意タイトル表示について【重要】
「# == 各種設定 ======」から下の方を見てゆくと「# == 以下、スクリプトその1 ======」というのがあり、またその下の方に、
# html表示にする場合は、この行から「# == 削除ライン =======」までを一括削除
# == 任意タイトル表示設定 ==================================================
があります。
単に、html表示( . + htmlなどの拡張子は自動割愛)にするのなら、そこに記してある
# html表示にする場合は、この行から「# == 削除ライン =======」までを一括削除
から、そこから数行下に記してある
# == 削除ライン =======
までを削除してください。これだけでOKです。
任意タイトル表示にする場合(また幾つか日本語とかに変更する場合):
htmlファイル名だと、なかなか分かりづらい場合は、ここに分かりやすい日本語を記して、集計を見やすくします。
少し、記述ルールがあるので、面倒でもお付き合いください。
if($n_html =~ // ){ $n_html = ''; }
elsif($n_html =~ // ){ $n_html = ''; }
elsif($n_html =~ // ){ $n_html = ''; }
という所に、自分で記述して行くのですが、いくらなんでも集計したいhtmlの数が2つや3つしかないとは思えないので、増える場合は、数に応じて、これの真下に
elsif($n_html =~ // ){ $n_html = ''; }
をコピー&ペーストし記述して行ってください。大文字と小文字は区別され半角のみ。
最初の行頭は、if....で、2行目からは、elsif....になります。
($n_html =~ // ){ $n_html = ''; } の最初の $n_html =~ // のスラッシュ「/」の間に
該当htmlの名前を記述します(.htmlは不要)。
例「information.html」:$n_html =~ // → $n_html =~ /information/
次の $n_html = ''; に、お好みの分かりやすい文字を記入します。全角可。
例「information.html」:$n_html = ''; → $n_html = '更新情報';
* 必ず「'」と「'」で挟み、最後は「;」にしてください。' は " ではなく ; も : とは違います。
* 記述する文字に、「'」と「 \ 」がある場合は、それぞれ \' \ としてください。
例「information.html」の結果として
if($n_html =~ /information/ ){ $n_html = '更新情報'; }
または、
elsif($n_html =~ /information/ ){ $n_html = '更新情報'; }
となっていれば、OKです。
しかし、文字が日本語(全角)の場合は、文字によって文字化けが起きる場合があります。
これのチェック方法:
取り敢えず設定したら、該当html総てにアクセスして、showrank.cgiで見てください。
もし文字化けがあったら、例:更新情報 → 更新c弛報 (実際はどうか分からない)
該当単語の前にバックスラッシュ「 \ 」を加えて回避してください。
$n_html = '更新情報';
↓
$n_html = '更新\情報';
そして、再びFTP後にアクセスし、該当htmlにアクセスして、showrank.cgiで見てください。
それでも文字化けしていたら、
$n_html = '更\新\情報' とか $n_html = '更新\情\報' とかにして再びチェックを繰り返し文字化けをなくすようにしてください。
しかし、どうやっても文字化けしてしまう場合は、諦めて別な用語にしましょう。
この文字化け対策の理想は、関連ファイルを総て、漢字コードをShift_JISからEUCにすることですが、ここでは割愛。
文字化け調整が終わったら、改めて空のacci.logをFTPして設定終了。
showrank.cgiの初期設定について
1) $view_title = 'accitano 各htmlアクセス集計'; #html表示内にお好みのタイトルを単に showrank.cgiでのhtml表示内での表示タイトルなので、お好きなのを入れてください。
3) $cifra = '000'; # パスワード(半角英数字)chaser.cgiのと同じ必要はない。
表示画面の「log_delete」ボタンをパスワードと共に押すと、いきなりログ内容全てが消去されるので、このパスワードは自分が忘れてしまうぐらいなのを入れておくのが良いでさう。
忘れたら、HD内にある、showrank.cgi を見れば良い。
4) $no_contar = '1'; # 集計に入れないカウント数
chaser.cgiで述べたように、やたら数が増えて表示されたのなら、この数を増やせばOKです。
この場合、ログには記述してありますが、1つしか集計されないのを単に非表示。
画面表示の(総計??)は、その含まれないのも含んでの総計。
設定日は、フィアルが空になった時点(空ファイルのFTPやログが壊れた時など)のタイムスタンプが記述されます。
記憶がないのに、これが変っていたらログが壊れている可能性があり。理由は、ロックファイルが0か、chaser.cgiが作動中にサーバーが落ちたとか。