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.oldQ-【リダイレクトカウンタ】 ダウンロード名が CGI 名になる
■ダウンロードカウンタとして使用する場合、ダウンロードファイル名が CGI 名になります。Q-【リダイレクトカウンタ】 IIS、PWS でリダイレクトエラーになる
■IIS、PWS でリダイレクトするとエラーが発生します。 他の公開 CGI は、IIS、PWS での動作を確認しているのですが、本 CGI は、 現実的に IIS や PWS ではご使用になれません。