SAK ソフトウェア FAQ - CGI カウンタ
CGI-Perl カウンタ
■解析型カウンタは、設置が難しいのか、よく質問を受けます。
次の手順で動作確認願います。
尚、w_sys/ 配下のファイルは、FTP では .txt 以外も「テキスト(アスキー)」
転送モードを使用して下さい。
ffftp.exe、秀丸エディタ、@nifty サイトの組み合わせでは、自動判定でも
改行削除や改行追加を行わなければ問題がないのですが、お使いの FTP ツー
ルやサイトによっては、バイナリ転送されて改行コードが UNIX と Windows
にうまく変換されません。
動作があやしい場合は、w_sys/ 配下の FTP には、毎回手動でテキスト(アス
キー)転送モードを指定して下さい。
ダウンロードファイルを秀丸エディタで見る場合、改行コードが UNIX でも
正常に見えてしまいます。Windows のメモ帳では UNIX 改行コードは化けて
見えます。自信がない場合は、メモ帳での確認をお願いします。
メモ帳で編集する場合、
1) 普通に改行されて見えるとき、(Windows 形式の改行でローカルにある)
→ 修正後の FTP アップロードはアスキー形式
2) 改行部分が■に化けて見えるとき、(UNIX 形式の改行でローカルにある)
2-1) ■を壊さないように、そのまま数値だけを修正したなら、
→ 修正後の FTP アップロードはバイナリ形式
2-2) ■を削除して、Windows の改行に修正したなら、
→ 修正後の FTP アップロードはアスキー形式
として下さい。
1. w_s3ctup.cgi の 54 行目付近の
#// セッション回数加算
if ($s3ses ne '1') {
をテスト用に次のように
#// セッション回数加算
#if ($s3ses ne '1') {
if ($s3ses eq $s3ses) {
と修正します。(テスト用に単純加算に変更する)
これは、正常に動作するようになれば、必ずオリジナルに戻して下さい。
2. w_sys/ フォルダのパーミッションを 777 に変更する。
もし、w_sys/ フォルダ中に 00000000_w_s3ctup.dat ファイルがあれば、
一度削除して下さい。
w_sys/err/、w_sys/sav/ 内にあるファイルは、無条件に全て削除して
空の状態にして下さい。古いバージョンには err/、sav/ はありません。
3. http://???/???/cgi-bin/s3cnt/w_s3ctds.cgi を直接呼び出して、
2 段目のテーブルのタイトルに
「2001.06.01 以降 アクセス回数 本日 前日 当月 前月 アクセス日付」
と「以降」の前に日付が表示されることを確認する。
→ 日付が表示されない場合は、w_sys/ フォルダのパーミッションに問題
がある可能性が高いです。(w_sys/ を 777 にしたか、もう一度確認)
まれに、実行場所がカレントにならないサーバがあるかもしれません。
Q-【IIS、PWS、Perl】 IIS、PWS では、CGI カレントが固定になる
を参考にして下さい。
尚、UNIX 系サーバでこの現象に出くわした経験はありません。
4. http://???/???/cgi-bin/s3cnt/w_s3ctup.cgi を 2 〜 3 回直接呼び出す。
2 回目からは、ブラウザ F5 の最新に更新で呼び出して OK です。
尚、w_s3ctup.cgi の呼び出しでは空白のページが返ってくるか、待ち状態
のままになります。気にせず、5 秒間隔ぐらいで F5 を 2 度ほど押します。
(IE の場合です。)
5. w_sys/ フォルダに 00000000_w_s3ctup.dat ファイルが作成できたか確認
する。ダウンロードして実際のカウント値が書かれているか見て下さい。
→ 00000000_w_s3ctup.dat ファイルが作成されない場合は、w_sys/ フォ
ルダのパーミッションに問題がある可能性が高いです。
(w_sys/ を 777 にしたか、もう一度確認)
6. http://???/???/cgi-bin/s3cnt/acounter.cgi?dsp=1 でテキストカウンタ
表示を確認する。
7. その他ページカウントの動作確認は、
http://???/???/cgi-bin/s3cnt/w_s3ctds.cgi?hd=12345 のように呼び出
すと実カウントファイルが列挙表示されます。
「$logpw = '12345';」を変更していれば、その値を指定して下さい。
8. まれにセッションカウントは正常に動作するがページカウントを「.dat」
としてしか管理できない CGI 環境のサイトがあります。
ファイアウォールの URL ブロック使用ユーザのアクセスでは、ページカウ
ントが「.dat」となるのですが、ユーザ側のブロックではなく、サイト側
で直前の URL 情報 $ENV{'HTTP_REFERER'} がブロックされているか、利用
できない環境の場合です。
このようなサイトの場合、各ページカウントを管理することは不可能とな
ります。また、未確認ですが恐らくリンク元解析もできないと思われます。
■jcode.pl を梱包していないため、$logpw に指定できるのは半角英数字だけで す。英数字で問題なく動作していますが、お使いの環境によっては数字しか指 定できない場合があるようです。 尚、別途、jcode.pl を入手いただき、s3cnt/ フォルダ内に FTP 願えるなら、 $logpw に日本語の指定が可能となります。
■アクセス回数のリセット
・w_sys フォルダの _ct_date.txt 以外を全て削除して、_ct_date.txt に削
除日を設定すると、全て 1 からのカウントとなります。
・00000000_w_s3ctup.dat と 00000000_w_s3ctup.dat.last がセッション回数、
いわゆるアクセス件数なので、これと、_ct_date.txt 以外を全て削除する
と、ページアクセス回数だけをリセットできます。
00000000_w_s3ctup.dat.last に前日等の件数が記録されています。
・何かをリセットした場合、w_sys/err/、w_sys/sav/ 内にあるファイルは、
無条件に全て削除して空の状態にして下さい。
古いバージョンには err/、sav/ はありません。
■アクセス回数の初期値セット
w_sys/ 配下のファイルは、FTP では .txt 以外も「テキスト(アスキー)」
転送モードを使用して下さい。
ffftp.exe、秀丸エディタ、@nifty サイトの組み合わせでは、自動判定でも
改行削除や改行追加を行わなければ問題がないのですが、お使いの FTP ツー
ルやサイトによっては、バイナリ転送されて改行コードが UNIX と Windows
にうまく変換されません。
動作があやしい場合は、w_sys/ 配下の FTP には、毎回手動でテキスト(アス
キー)転送モードを指定して下さい。
ダウンロードファイルを秀丸エディタで見る場合、改行コードが UNIX でも
正常に見えてしまいます。Windows のメモ帳では UNIX 改行コードは化けて
見えます。自信がない場合は、メモ帳での確認をお願いします。
メモ帳で編集する場合、
1) 普通に改行されて見えるとき、(Windows 形式の改行でローカルにある)
→ 修正後の FTP アップロードはアスキー形式
2) 改行部分が■に化けて見えるとき、(UNIX 形式の改行でローカルにある)
2-1) ■を壊さないように、そのまま数値だけを修正したなら、
→ 修正後の FTP アップロードはバイナリ形式
2-2) ■を削除して、Windows の改行に修正したなら、
→ 修正後の FTP アップロードはアスキー形式
として下さい。
・既存設置のカウンタ数などを移行する場合、次の通り作業下さい。
・00000000_w_s3ctup.dat ファイルをメモ帳などで作成します。
最後の行の改行を忘れないようにお願いします。
〜〜 ↓ ここから ↓ 〜〜
45317
2001.06.09 01:16:00
〜〜 ↑ ここまで ↑ 〜〜
45317
|_ 累計アクセス回数
2001.06.09 01:16:00
| |_ 修正した時間
|_ 修正した日
・00000000_w_s3ctup.dat.last ファイルをメモ帳などで作成します。
最後の行の改行を忘れないようにお願いします。
〜〜 ↓ ここから ↓ 〜〜
519
12126
2843
45275
41454
2843
〜〜 ↑ ここまで ↑ 〜〜
519
|_ 前日カウンタ数
12126
|_ 前月カウンタ数
2843
|_ 前年カウンタ数
45275
|_ 前日末の累計アクセス回数
41454
|_ 前月末の累計アクセス回数
2843
|_ 前年末の累計アクセス回数
** 当日、当月、当年カウンタ数は、前?末の累計アクセス回数と累計アクセス
回数の引き算で表示しています。
■CGI は動作しているが、まったくカウントされない場合、次の点を確認して下
さい。
・ファイアウォールでプライバシーブロックを有効にしている場合、一時的に
解除して動作テストして下さい。
・w_sys フォルダのパーミッションを 777 にしてテストして下さい。
・HTML に組み込んだ w_s3ctup.cgi の URL が実際に呼べるものか確認して下
さい。「読んでね.txt」に例として /cgi-bin/s3cnt/w_s3ctup.cgi と記載
していますが、これはサイトトップがルート設定の場合のみ有効です。
一般的には、HTML 毎に相対ロケーションで w_s3ctup.cgi への URL を指定
するのは大変なので、http://????.???/sak/cgi-bin/s3cnt/w_s3ctup.cgi
のように http:// から始まる絶対 URL で指定して下さい。
こうすると、他の HTML へも単純にコピーで組み込めます。
■サイト構成がフレームページの場合、フレーム記述の index.html にアクセス
解析コードを記述しても動作しません。
フレームサイトの場合、メニュー(インデックス) などを表示している
menu.html にアクセス解析コードを追加して下さい。
(タイトルなどの title.html に組み込んでも問題ありません。)
尚、menu.html に組み込んだ場合、サイトトップのページカウントファイルは、
http~~~???.???~menu.html.dat のようになります。
w_s3ctds.cgi の 172 行目付近にある整形表示部分は、トップページを次のよ
うに設定します。
#// ページアクセス件数表示
DspACnt('トップ' , 'http~~~???.???~menu.html.dat');
DspACnt('アクセス状況', 'http~~~???.???~cgi-bin~s3cnt~w_s3ctds.cgi.dat');
■リンク元解析については、フレームトップの index.html に対して動かしよう
がありません。サーチエンジン等から単体のページが呼ばれた場合は問題ない
のですが、直前の URL を参照しようがないのが現状です。
尚、以前に 3 フレームのチャットをオープンしていた際は、フレーム内の
3 ページにリンク元解析を入れていました。
この場合、タイミングによっては、リンク元を記録する場合もありました。
Q-【アクセスカウンタ】 解析組み込みページで HTML エラー
■ホームページ作成ソフトをお使いの場合、組み込んだアクセス解析コードが 変に改行されたりする可能性があります。 「終了していない文字列型の定数です」と表示される場合は、document.write 行が複数行に分割されているのが原因です。 「読んでね.txt」の見本にあるように w_s3ctlk.cgi を含む document.write 文は 1 行で記述して下さい。 また、w_s3ctup.cgi 組み込み行での HTML エラーも同様におかしな箇所で改行 されていないか確認して下さい。 よくわからなければ、「読んでね.txt」の見本どおりに組み込んで下さい。
Q-【アクセスカウンタ】 HTML へのアクセス管理・解析の組み込み
■s3ct_e、s3ct_s では、ページカウントやリンク元の管理ができます。
但し、必要な HTML へ組み込む作業はたいへんです。
ついては、連続ソースリプレース(repsr200.lzh) repsrc.exe を使って簡単に
全 HTML に追加する方法を説明します。
・</BODY> の前に必要なコードを一挙に追加します。
次のようにリプレース定義を作成します。
尚、URL は、ご自分の HP に合うように必ず修正してから実行して下さい。
・ホームページ URL を「http://homepage.com/hpurl/」、
CGI URL を「http://homepage.cgi/cgiurl/」としたコード挿入原始定義は、
次のようになります。
cgi が http://homepage.com/hpurl/cgi-bin/ のマッピングですと、
CGI URL 「http://homepage.cgi/cgiurl/」を
「http://homepage.com/hpurl/cgi-bin/」のように修正して下さい。
CGI がサポートされてないとサイトでは、CGI URL にも HP URL を指定して
下さい。
↓ この原始リプレース定義を自分の HP にあうように URL 関係を修正
</BODY>
,
<SCRIPT LANGUAGE=javascript>_\n_
<!--_\n_
var lnk = document.referrer;_\n_
if (-1 == lnk.indexOf('http://homepage.com/hpurl/')) {_\n_
if (-1 == lnk.indexOf('http://homepage.cgi/cgiurl/')) {_\n_
if (lnk != '') document.write('<DIV style="HEIGHT: 0px; LEFT: -200px; POSITION: absolute; TOP: -200px; VISIBILITY: visible; WIDTH: 0px; Z-INDEX: 2"><IMG src="http://homepage.cgi/cgiurl/s3cnt/w_s3ctlk.cgi?lk=' + lnk + '"></DIV>');_\n_
}_\n_
}_\n_
//-->_\n_
</SCRIPT>_\n_
<DIV style="HEIGHT: 0px; LEFT: -200px; POSITION: absolute; TOP: -200px; VISIBILITY: visible; WIDTH: 0px; Z-INDEX: 1"><IMG src="http://homepage.cgi/cgiurl/s3cnt/w_s3ctup.cgi"></DIV>_\n_
</BODY>
↓ 1 行につなげて定義記述のできあがり
</BODY>,<SCRIPT LANGUAGE=javascript>_\n_<!--_\n_ var lnk = document.referrer;_\n_ if (-1 == lnk.indexOf('http://homepage.com/hpurl/')) {_\n_ if (-1 == lnk.indexOf('http://homepage.cgi/cgiurl/')) {_\n_ if (lnk != '') document.write('<DIV style="HEIGHT: 0px; LEFT: -200px; POSITION: absolute; TOP: -200px; VISIBILITY: visible; WIDTH: 0px; Z-INDEX: 2"><IMG src="http://homepage.cgi/cgiurl/s3cnt/w_s3ctlk.cgi?lk=' + lnk + '"></DIV>');_\n_ }_\n_ }_\n_//-->_\n_</SCRIPT>_\n_<DIV style="HEIGHT: 0px; LEFT: -200px; POSITION: absolute; TOP: -200px; VISIBILITY: visible; WIDTH: 0px; Z-INDEX: 1"><IMG src="http://homepage.cgi/cgiurl/s3cnt/w_s3ctup.cgi"></DIV>_\n_</BODY>
・CGI-Perl のソースは、ヒアドキュメントで </BODY> が 1 箇所だけなら、
同じ定義で使えるかもしれませんが、作り方はまちまちであり、
Perl ソースへの修正は手作業で行う方が良いです。
HTML と同じようにリプレースするとエラーになる確率の方が高いです。
また、Perl 作者がこの手の改編を認めていない場合もあります。
SAK 提供の CGI-Perl については、この改編は、自分の責任において自由に
実施して下さい。
・repsrc.exe の説明は、ダウンロードパッケージ中の「読んでね.txt」に
あります。
■s3mb_e、s3mb_m、s3mb_s 系列の掲示板については、w_s3mbix.cgi、
w_s3mbdw.cgi、w_s3mbfm.cgi の 3 つに入れます。
$ctcgi = '../s3cnt/w_s3ctup.cgi';
$ctlcgi = '../s3cnt/w_s3ctlk.cgi';
** $ctcgi = '../s3cnt/w_s3ctup.cgi'; の定義は、標準で入ってますが、
$ctlcgi はないので、その下に追加します。
cgi-bin/
s3cnt/
s3mb/
この配置なら、「../s3cnt/w_s3ct...」のままです。
<SCRIPT LANGUAGE=javascript>
<!--
var lnk = document.referrer;
if (-1 == lnk.indexOf('http://homepage.com/hpurl/')) {
if (-1 == lnk.indexOf('http://homepage.cgi/cgiurl/')) {
if (lnk != '') document.write('<DIV style="HEIGHT: 0px; LEFT: -200px; POSITION: absolute; TOP: -200px; VISIBILITY: visible; WIDTH: 0px; Z-INDEX: 2"><IMG src="$ctlcgi?lk=' + lnk + '"></DIV>');
}
}
//-->
</SCRIPT>
<DIV style="HEIGHT: 0px; LEFT: -200px; POSITION: absolute; TOP: -200px; VISIBILITY: visible; WIDTH: 0px; Z-INDEX: 1"><IMG src="$ctcgi"></DIV>
** URL 関係は、HTML に組み込むのと同じ理屈で修正して下さい。
** w_s3mbix.cgi は、一番最後の </BODY> の前に、
w_s3mbdw.cgi、w_s3mbfm.cgi は </BODY> が 1 か所しかないので、検索し
て、その前に入れます。
コード内容は、.htm に入れるのと少し違います。
SAK 提供の他の CGI-Perl に入れる場合も、この要領で入れます。
Q-【アクセスカウンタ】 一度アクセスした人を二度カウントするか
■s3ct_e、s3ct_s には、リロード対策機能があります。 標準ですと、アクセスが 5 分以上途絶えたら、新たに来たとしてカウントし ます。逆に言えば、同じページをぼっーと 5 分以上見てたら、次のアクセス でカウントします。 うちのアクセスログを解析した範囲では、2 分以上ぼっーとしてるアクセスは まずないです。5 分のセッションで十分だと思います。 わかりやすく言うと、5 分以内にページを切り替えてる限り、何時間アクセス していてもセッションカウントは 1 のままです。 ■お使いの環境の組み合わせによっては、二重カウント防止機能が働かない場合 があります。私はインターネットセキュリティを導入してから、二重カウント 防止機能が無効になりました。(ファイアウォール制限) また、IE4.01 の SP1 でも二重カウント防止機能が動作しないと報告を受けて います。大半のユーザは、うまく二重カウント防止機能が働きます。
Q-【アクセスカウンタ】 ページカウント数が 0 と表示される
■w_sys/ フォルダのパーミッションに書き込み権がない可能性があります。
w_s3ctds.cgi の表示で、xxxx.xx.xx 以降と正しく日付が表示されている場合、
ロケーション設定は間違っていないと思います。
この場合、w_sys/ のパーミッションを 777 でテストしてみて下さい。
(場合によっては、cgi-bin/ も 777 にする必要があるかもしれません。)
・777 で動作すれば、755, 666、644 が w_sys/ のパーミッション
候補です。666 でいけそうに思います。
できるだけ動作する範囲の低いパーミッションにした方が良いです。
■w_s3ctds.cgi の修正が実施されていないか、修正にミスがあります。
尚、トップページがフレームの場合は、フレームの .htm をトップとして指定
してもカウントされていないので 0 のままです。
フレームの場合は、インデックスページか実トップページをトップとして指定
します。
DspACnt('トップ' , 'http~~~homepage2.nifty.com~sak.dat');
DspACnt('アクセス状況', 'http~~~hpcgi2.nifty.com~sak~s3cnt~w_s3ctds.cgi.dat');
| |_ ページアクセス回数を表示する url に
| 『.dat』を付加したものを指定します。
| 但し、『:』『/』は、『~』として定義し
| て下さい。
| 【例】http://sak.cool.coocan.jp/
| 【→】http~~~homepage2.nifty.com~sak.dat
| 【例】http://sak.cool.coocan.jp/w_sak3/doc/public/sakprof.htm
| 【→】http~~~homepage2.nifty.com~sak~w_sak3~doc~public~sakprof.htm.dat
|_ 表示用のページタイトルを定義します。
以下、DspACnt() を必要なページ分追加します。
この部分のみパスワードなしで表示されます。
パスワードを指定しての呼び出しでは、全ページアクセス件数が
ファイル名そのままで追加表示されます。
Q-【アクセスカウンタ】 FLASH のリンク元解析ができない
■FLASH によるリンクでは、アクセス元の解析ができません。 どうも FLASH 内部で Location しているようで、有効な URL が引き取れない ようです。
■アクセスカウント数値やアクセスログの当日、前日などの繰越しは、0 時以降
の最初の該当アクセスで行われます。
また、ページカウントについては、各ページ単位に行われるで、0 時に一斉に
繰越処理されるわけではありません。
ページ繰越しは一斉に処理する方が綺麗なのですが、0 時近辺は CGI サーバ
の負荷が極端に高く、全ページの繰越処理を行うとデッドロックが発生しやす
くなります。
・独自に一斉に全ページを繰り越すようにしていただいてもかまいませんが、
繰越中にもページカウントは加算されていきますので、0 リセットされたり、
排他制御でデッドロックが起きないように工夫して下さい。
また、0 時近辺は、CGI サーバのレスポンスが非常に悪いので、タイムアウ
トなどの問題にも注意して下さい。
・当日、前日と同じ仕様で当月、前月、当年、前年も繰越処理しています。
0 時に一斉に綺麗に繰越しされませんが、現実的なレンポンス仕様と言う
ことで、ご理解下さい。
■ファイアウォールによるプロックで、二重カウント防止機能が無効になったり、 まったくカウントされない場合があります。 全体的には支障が出ていませんが、特定のユーザにそういう事が起こります。 設置者の環境にファイアウォールがある場合、テスト動作に問題が発生する 可能性があります。
■新規で、s3ct_e、s3ct_s を設置し、ページアクセス数の整形表示を定義すると、
まだカウントされていないページアクセス数に、直前の数値がゴミとして列挙
される場合があります。
この場合、問題のページアクセスが実際に発生すると正しい数値になります。
(s3ct_e、s3ct_s ver 3.24 では、全て対処済みです。)
・ver 3.23 以前で、プログラムとして対処するには、w_s3ctds.cgi を
メモ帳などで開いて、一つ目の「#// アクセス回数参照」を検索、
次のように修正して下さい。
(「#// アクセス回数参照」は、2 箇所あります。)
sub DspACnt
{
my($mds) = @_[0];
my($ctf) = @_[1];
#// アクセス回数参照
$ct = 0;
$err = 0;
open(CNT, "$syslog/$ctf") or $err = 1;
if ($err == 0) {
$ct = <CNT>;
$ltdt = <CNT>;
chomp ($ctnow = <CNT>);
chomp ($ctold = <CNT>);
chomp ($ctmmnow = <CNT>);
chomp ($ctmmold = <CNT>);
close(CNT);
}
else { # ← 行追加
$ct = 0; # ← 行追加
$ltdt = ''; # ← 行追加
$ctnow = 0; # ← 行追加
$ctold = 0; # ← 行追加
$ctmmnow = 0; # ← 行追加
$ctmmold = 0; # ← 行追加
} # ← 行追加
・同じく、二つ目の「#// アクセス回数参照」を検索、次のように修正して
下さい。
sub GetACnt
{
my($ctf) = @_[0];
#// アクセス回数参照
$svdt = $ltdt;
$ct = 0;
$err = 0;
open(CNT, "$syslog/$ctf") or $err = 1;
if ($err == 0) {
$ct = <CNT>;
$ltdt = <CNT>;
chomp ($ctnow = <CNT>);
chomp ($ctold = <CNT>);
chomp ($ctmmnow = <CNT>);
chomp ($ctmmold = <CNT>);
close(CNT);
}
else { # ← 行追加
$ct = 0; # ← 行追加
$ltdt = ''; # ← 行追加
$ctnow = 0; # ← 行追加
$ctold = 0; # ← 行追加
$ctmmnow = 0; # ← 行追加
$ctmmold = 0; # ← 行追加
} # ← 行追加
Q-【アクセスカウンタ】 000000 daily -????? とずれて表示される
■まれにアクセスカウンタ表示が「000000 daily -????? - ???」のように
ずれて表示される場合があります。(画像カウンタでは 000000 となる。)
・まず、1 〜 2 度リロードして正常に表示されないか確認して下さい。
更新と重なった単純なリードエラーの場合は、リロードで正常に表示
されます。
・リロードしても正常な表示にならない場合は、00000000_w_s3ctup.dat の
更新がおかしくなっています。
お手数ですが、00000000_w_s3ctup.dat を手作業修正して下さい。
尚、アクセスカウンタの最新版では、こういう更新異常が発生しにくいよう
に対処しています。(絶対に発生しないとは言いきれないのですが。)
・また、ホームページ空間の容量限度に達していないか確認して下さい。
@nifty の場合は、残り 1MB ぐらいで、実質残り 0 に限りなく近いです。
ファイルラベル容量や最小アロケーションサイズが加味されていない場合が
あります。
Q-【アクセスカウンタ】 画像カウンタで桁上がり時、表示がおかしくなる
■解析型カウンタ、シンプルカウンタ共にテキストカウンタ表示ではなく、 画像カウンタ表示を使用している場合、桁上がり時の表示がおかくしなる場合 があるようです。 例えば、399 から 400 に変わるとき、上位桁の 3 を表示した後に 400 に データが更新され下位桁を 00 と表示して、結果 300 と表示されるような事象 が発生します。 実際のカウント値に問題はないのですが、特にシンプルカウンタの画像表示 では更新と表示を同時に行っているので発生率が高いようです。 解析型カウンタは更新を別の cgi で行っているので、いくらか発生率が低いの ですが、やはり、画像カウンタ表示では起こる可能性があります。 もし、IFRAME による テキストカウンタ表示が可能なら、そちらの設定で利用 して下さい。テキストカウンタ表示ではこのような問題は発生しません。
Q-【アクセスカウンタ】 ページカウントが 1 以上加算されない
■s3ct_e、s3ct_s ver 3.23 をお使いの場合、初期ページカウント後の加算が
うまくできません。(ver 3.24 では、対処済み。)
・ver 3.23 で強化したカウント判定にバグがあります。
w_s3ctup.cgi をメモ帳などで開いて、「#// ページアクセス回数加算」
下の 162 行付近を次のように修正して下さい。
if ($ct eq '' or $ctmmold eq '' or $ct < 1) {
↓↓↓↓ $ctmmold を $dttmold に修正
if ($ct eq '' or $dttmold eq '' or $ct < 1) {
■アクセスログやリンクログが指定整理日になっても繰越しされず、常に累積 される場合、w_sys/ フォルダのパーミッションを 777 に変更してテストして 下さい。
■リンクログが記録されない場合、HTML への w_s3ctlk.cgi の組み込みに問題 がないか確認して下さい。 もし、w_s3ctlk.cgi の解析コードを 1 行にまとめて記述している場合、 「読んでね.txt」のサンプルのように複数行に記述し直して下さい。 w_s3ctlk.cgi の解析コードを 1 行にまとめると動作しません。
Q-【アクセスカウンタ】 Mac + IE5 で他スクリプト動作に問題が発生する
■アクセス解析コードを組み込んだ HTML ページを Mac + IE5 でブラウズすると、
他の JAVA クライアントスクリプト等が動作しない場合があるようです。
問題のページを Windows + IE6 でブラウズしても正常に動作します。
特に凝ったスリクプトを使用しているページで発生する可能性があります。
・Windows + IE6 のブラウズで現象が発生しないため、Mac との相性か、
凝ったスクリプトコードと干渉しているものと思われます。
うちの SAK Streets トップ
http://sak.cool.coocan.jp/
でも問題が発生するか、ご確認下さい。
うちのトップで問題が発生するようなら、対処のしようがありません。(^◇^;)
・現時点でこれと言った対処法が思い浮かばないのですが、アクセス解析
コードの組み込み位置を <BODY>...</BODY> 間で、<BODY> の
直後にしたり、</BODY> の直前にしたりしてみて下さい。
・これで解決したと言う事例がありましたら、ご報告願えると助かります。
Q-【アクセスカウンタ】 ネスケ4.7 ブックマークアクセスで IMG 残骸が表示される
■ネスケ4.7 のブックマークから、アクセス解析を組み込んだページをブラウズ すると、アクセス解析の IMG タグ残骸が表示されます。 また、4.7 では、リンク等からのアクセスでも、たまに残骸が表示されます。 このとき、JAVA クライアントスクリプト部分が飛んでおり、DIV タグが二重 になっています。むちゃくちゃなソースに変換されているようです。(^^; この現象は、ネスケ6 でブックマークからアクセスしても発生しません。 どうもネスケ4.7 あたりのバージョン固有の問題みたいです。 アクセス解析のコードとネスケ4.7 のブックマークからのアクセスとの相性が 非常に悪いようです。残念ながら、解決法がわかりません。
■s3ct_e、s3ct_s で、フォルダ単位やその他複数ページカウントの合計を
整形表示するには、次のようにします。
・w_s3ctds.cgi の 「#// ページアクセス件数表示」にページ単体の
整形表示は、
DspACnt('タイトル', 'http~~~....htm.dat');
のように指定しますが、複数ページの合計にする場合は、
$addct = 0;
foreach (@file) {
if ($_ ne '.' and $_ ne '..' and index($_, 'http~~~homepage2.nifty.com~sak~w_sak3~doc~sysbrd~', 0) != -1) {
$addct += GetACnt($_);
}
}
DspAddC('SAK 開発言語資料' , $addct);
のように記述します。
この例では、http://sak.cool.coocan.jp/w_sak3/doc/sysbrd/ 内の
全てのページカウントの合計を表示します。
・同じく、このページとこのページの合計と言う整形表示は、
$addct = 0;
$addct += GetACnt('http~~~homepage2.nifty.com~sak.dat');
$addct += GetACnt('http~~~hpcgi2.nifty.com~sak.dat');
$addct += GetACnt('http~~~hpcgi2.nifty.com~sak~.dat');
$addct += GetACnt('http~~~hpcgi2.nifty.com~sak~index.cgi.dat');
$addct += GetACnt('.dat');
DspAddC('SAK トップ' , $addct);
のように記述します。
Q-【アクセスカウンタ】 ログの URL に空、または、おかしな URL ものがある
■アクセスログ等の URL が空になるのは、ファイアウォール使用ユーザの プライバシプロックが原因と思われます。 私も導入しているので、私がアクセスしても URL が空になります。 ファイアウォールが現 URL や、直前の URL 情報をブロックしてしまうので URL 情報が引き取れません。 この場合、「.dat」というページカウントファイルになります。 「その他」か何かで「.dat」を表示するしかありません。 ■ページカウントファイル名やリンクログの URL におかしなものが発生するのは、 同じくファイアウォールか、ユーザの URL 入力ミスあたりが考えられます。 後、複数ブラウザ画面を開いているユーザなどで、リンク元 URL が別の URL として飛んでくることもあります。 ■セッション数は、ページビュー合計数とは一致しません。 セッションカウントは基本的に接続単位を管理していますので、何ページ 見ていても同じ人なら 1 です。 ページカウントは、実表示回数なので、セッション数よりもページビュー 合計数の方が多いのは正常です。■セッションカウントやページカウントは、新しいバージョンのものほど異常が 発生しにくくなっています。 アクセス数の多いサイトは、できるだけ最新版をご利用下さい。 また、セッションカウントについては、w_s3ctup.cgi の $daymin を 10 に すると障害の発生を低減できます。 うちは、$daymin = 10; で運用を開始してから、カウンタのトラブルは発生 していません。 -- w_s3ctup.cgi 26 line -- $daymin = 10; |_ 最小繰越しカウンタ数 2 は、3 件あれば繰り越す。 1 日 1 万件オーバのサイトでは、10 ぐらい指定すると良い。 ■ホームページ容量の限界に到達した場合、カウントデータが書き込めず空にな ります。00000000_w_s3ctup.dat が 0 バイトになってしまうような場合、 容量限度も忘れずに確認して下さい。 必要なら、ホームページ容量を増やして下さい。 @nifty では、表示される空き容量が 1MB を切ると、実際にはファイルラベル等 で限りなく残容量ゼロに近くなっています。 カウンタの機能としては、アクセスログ、リンクログを記録しないように設定 できます。各設定によって、w_sys/ 内の次のファイルを削除して下さい。 -- アクセスログ w_s3alog.txt w_s3alog.old -- リンクログ w_s3llog.txt w_s3llog.old
Q-【リダイレクトカウンタ】 ダウンロード名が CGI 名になる
■ダウンロードカウンタとして使用する場合、ダウンロードファイル名が CGI 名になります。
Q-【リダイレクトカウンタ】 IIS、PWS でリダイレクトエラーになる
■IIS、PWS でリダイレクトするとエラーが発生します。 他の公開 CGI は、IIS、PWS での動作を確認しているのですが、本 CGI は、 現実的に IIS や PWS ではご使用になれません。