- ローカルマシンにディレクトリを用意
貴方の計算機上に”c:\link”等のLDC用の新しいディレクトリをお作り下
さい。リンクのページ用のディレクトリがすでにある場合には、そのディ
レクトリを御利用下さい。以下、”c:\link”というディレクトリにLDCを
準備するとして説明します。
- ”LDC”のダウンロード
次の(1)と(2)のファイルをここからダウンロードして、”c:\link”
の下にそろえて下さい。
[Internet Explorer 2.0/3.0をお使いの方への注意]
IE 2.0/3.0を使ってテキストファイルをダウンロードすると先頭に空白行が
2行入る場合があります。その場合には、先頭の空白行は必ず削除して
下さい。
[Netscape History等の後でキャッシュからページを見るソフトをお使いの方へ]
キャッシュで見ると、ファイルの内容が変わる場合があります。必ず、
”ldc.txt”および、”showldc.txt”は直接Webページからダウンロードして
下さい。
(1)リンク先カウント用”ldc.cgi”
次の”ldc.txt”のリンクをクリックして下さい。ldc.txtの中身が表示され
たら、ブラウザのメニューから、”ファイル/名前を付けて保存”等の
項目を選んでローカルファイルに転送して下さい。この際、ローカルマシ
ン(貴方の計算機)のディレクトリは先ほど用意した”c:\link”等にして
下さい。ローカルファイル名は、”ldc.cgi”に変更して置いて下さい。
これで、”c:\link\ldc.cgi”ができるはずです。
ldc.txt (ver.1.3)(4KB)
(2)カウント結果表示用”showldc.cgi”
次の”showldc.txt”のリンクをクリックして下さい。showldc.txtの中身
が表示されたら、ブラウザのメニューから、”ファイル/名前を付けて保
存”等の項目を選んでローカルファイルに転送して下さい。この際、ロー
カルマシンのディレクトリは先ほど用意した”c:\link”等にして下さい。
ローカルファイル名は、”showldc.cgi”に変更して置いて下さい。これ
で、”c:\link\showldc.cgi”ができるはずです。”ldc.cgi”と
”showldc.cgi”をここからダウンロードしても改行文字がLFのみのまま
で、貴方の所有のエディタで編集できない場合には、これらのファイルを
貴方のWebサイトのリンクのページのディレクトリに一度ftpソフトでテキ
ストモード(=アスキーモード)送って(put)から、すぐテキストモードでダ
ウンロード(get)してみて下さい。改行文字が
貴方の計算機にあったもの(Windowsは、CR LF, Macは、CR)に直る場合が
あります。これでだめな場合は、改行文字がLFでも、編集できるエディタ
(Windowsなら、秀丸エディタ等)を使うか、改行文字を直すソフトを入手し
て下さい。
showldc.txt (Ver.1.5)(10KB)
- カウント数記録用ファイル”ldc1.txt”および作業用ファイル”ldc2.txt”
リンク先カウントのためのファイル”ldc1.txt”をエディタで作って
御用意下さい。準備の仕方は、2通りあります。
(1)全URLの行を最初に用意する方法
例えば、次のようなものです。
0 a 1996/11/05 14:05
0 http://www.yahoo.com/ Yahoo!(Web検索(USA))
0 http://www.altavista.digital.com/ DECの検索エンジン
0 http://www.yahoo.co.jp/ Yahoo! JAPAN(Web検索)
0 http://navi.ntt.jp/home.html NTT DIRECTORY(Web検索)
0 http://www.info.waseda.ac.jp/search.html 千里眼(Web検索:127万URL)
最初の文字は、半角の”0”、次が半角空白、そして、URLです。この後、
半角の空白を1個以上入れて、URLのコメントを書くことができます。
URLは、貴方のリンクのページで使われているものをお書き下さい。
一行目は、コメント行のようなもので、URLの代わりに”a”と書いてい
ます。この行は、なくてもかまいません。
(2)最初は一行だけ用意する方法
URLの後にコメントをつけない場合や、コメントは後で付ける場合など
は、(1)の例の一行目だけのファイルを作り”ldc1.txt”として下さい。
一行目の終わりに改行を入れて下さい。
ldc.cgiは、ldc1.txtに該当するURLがない場合は、ldc1.txtの最後に
そのURLの行を一行追加します。例えば、竹ソフトのURLがなかった場合
1 http://www2a.meshnet.or.jp/~takesoft/
というように新しいURLが1回クリックされたと追加します。従って、
リンクのページのURLをldc.cgiが呼ばれるように準備してから、一回ずつ
クリックするとクリックした順にldc1.txtにデータが並びます。この場合
URLのコメントは、つきませんので付けたい場合は、ftpでダウンロード
(get)して、URLの後に半角空白を1個以上入れてからコメントを追加し、
ftpでアップロード(put)するとコメント付きになります。
作業用のファイル”ldc2.txt”は、ldc1.txtをコピーして準備して下
さい。
リンクのカウントを例えば3つのグループ a, b, c にわけてカウント
数を集計するには、各グループ毎に一組のファイルが必要です。例えば、
ldca1.txt, ldca2.txt (aグループ用)
ldcb1.txt, ldcb2.txt (bグループ用)
ldcc1.txt, ldcc2.txt (cグループ用)
のように、拡張子を除いた部分のファイル名が”1”で終わるファイルと
”2”で終わるファイルをペアで御用意下さい。
- アクセスカウント用ファイル”s_count.txt”の準備
エディタで、半角の数字”0”が1個のみでリターン(改行)が入っていな
いファイル”s_count.txt”を準備して下さい。このファイルは、
showldc.cgiが呼ばれた回数をカウントするためのものです。
これで必要なファイルが5個、”c:\link”のディレクトリの下にそろ
いました。(グループ分けしてカウントする場合は、ファイルの数は、更
に多くなります。)
- ”ldc.cgi”の変更
このCGIをBIGLOBE(mesh)以外で使用される場合には、一行目の
#!/usr/mesh/bin/perl
をそのサイトのperlのあるところに変更して下さい。
例えば、rimnetや3Webでは、
#!/usr/local/bin/perl
に変更して下さい。
次に、最初の方にある$def_bdirと$def_ldc1を必要に応じて変更して下さい。
$def_bdir = "./"; # default name of directory
$def_ldc1 = "ldc1"; # default ldc1
$def_ldc1は、リンクがクリックされた回数とURLを保存するファイル名の
主要部です。後で、この名前に”.txt”という拡張子が付加されます。
この名前の初期値は、”ldc1”ですので、ファイル名は、”ldc1.txt”に
なります。この名前はすべて半角にして下さい。
また、最後の文字は、必ず、数字の”1”にして下さい。この”1”の部分
が”2”となったファイルも作業用として必要です。初期値のままの場合
”ldc2.txt”というファイルが作業ファイルとして用いられます。
$def_bdirは、ldc1.txtとldc2.txtのファイルがあるディレクトリです。
BIGLOBE(mesh)の場合、CGIの作業中のディレクトリは、そのCGIが存在するディ
レクリに設定されるので、ldc.cgiがldc1.txtやldc2.txtと同じディレクトリに
存在すれば”./”でかまいませんが、他の多くの
サイトでは、絶対パス(フルパス)を指定する必要があります。例えば、
$def_bdir = "/home/usr03/user-id/public_html/link/"
あるいは、
$def_bdir = "/home5/user-id/public_html/link/"
等です。数字の部分は、同じプロバイダでも異なる場合があります。
”user-id”の部分は、ユーザ名です。ファイルのフルパスの指定の仕方は
、サイトによって異なりますのでプロバイダかシステム管理者にお問い合
わせ下さい。もし、telnet(shell)でUNIXのコマンドが使える場合は、
”pwd”コマンドを入力すると表示されます。
- ”showldc.cgi”の変更
このCGIをBIGLOBE(mesh)以外で使用される場合には、一行目の
#!/usr/mesh/bin/perl
をそのサイトのperlのあるところに変更して下さい。
例えば、rimnetや3Webでは、
#!/usr/local/bin/perl
に変更して下さい。
次に最初の方にある次の部分のうち必要なものを修正します。
$limit = 1000000; # size limit of ldc1.txt file for sorting(byte)
$def_bdir = "./"; # default name of directory
$def_ldc1 = "ldc1"; # default ldc1 file(.txt)
$def_s_count = "s_count"; # default s_count file(.txt)
$showldc_cgi = "showldc.cgi"; # URL of showldc.cgi
$link_page = "link.html"; # URL of link page
$home_page = "../index.html"; # URL of home page
$limitは、ldc1.txtのデータの並び替えをする上限です。ldc1.txtがこの
サイズ(byte)以上の場合は、URLの並び替えをせず、元の順序で表示しま
す。並び替えをする場合は、ldc1.txtを全部サーバーのメモリに読み込む
ので大きすぎるとサーバーのメモリを圧迫するのでこのような制限値を設
けています。通常は変更不要です。コメントを付けて1URLあたり、100バ
イト必要としても、初期設定値の1MBになるには、1万URL必要ですので
通常のWebページでは、この制限にはかからないと思います。
次に、$def_bdirを必要に応じてフルパスに変更して下さい(ldc.cgiの
場合と同じです)。$def_ldc1も必要な場合のみ変更して下さい(ldc.cgiの
場合と同じです)。$def_s_countは、showldc.cgiが実行された回数をカウ
ントするファイルです。通常は、このままにして置いて下さい。ldc1ファ
イルが何種類かあり、それに応じてカウントする場合などには、ldc1ファ
イルに対応して用意します。$showldc_cgiは、通常変更不要です。
showldc.cgiのファイル名を変更した場合などに変更します。$link_pageは、
リンクのページのURLを指定して下さい。上の例はshowldc.cgiと同じディ
レクトリにあり、リンクのページが”link.html”の場合です。
$home_pageは、最初のWebページのURLです。上の例は、
/home/usr01/user-id/public_html/index.html
/home/usr01/user-id/public_html/link/showldc.cgi
というように、index.htmlが一つ親のディレクトリにある場合に相対URL
で指定した場合です。
showldc.cgiを実行した場合に、表示されるページは、英語表示にしてい
ます。これは、主要項目がカウント数、URL、コメントと少ないためです。
日本語表示にすると私がshowldc.cgiを文字コード別(JIS, EUC, Shift JIS)
につくる必要があるからです。しかし、
貴方で、一度showldc.cgiを動かして、うまく表示できることを確認した
後は、うまく動くshowldc.cgiを、コピーしてバックアップした後、自由
に日本語表示に変更していただいてかまいません。ただし、
次の項目に注意して下さい。
['@', '$', '"' 及び '\'記号に関する注意]
Perlでメールアドレス等に含まれる'@'を出力する際には特に注意
が必要です。以下に示すような解釈されるprint文で'@','$','"','\'
を出力する場合には、その前に'\'を付けて、'\@','\$','\"','\\'と
して下さい。例を以下に示します。
print <<EOF;
<A HREF=\"mailto:takesoft\@mxs.meshnet.or.jp\">
takesoft\@mxs.meshnet.or.jp</A>
EOF
あるいは、
print "<A HREF=\"mailto:takesoft\@mxs.meshnet.or.jp\">";
print "takesoft\@mxs.meshnet.or.jp</A>";
[Shift JISコードで使用される方に御注意]
showldc.cgiを日本語のShift JISに変更される際に、文字化けに注意し
て下さい。
次のような文字は、2バイト目に”0x5C”が含まれています。これは、
半角文字の”\”に対応します。PerlやCでは、この記号がエスケープ記号
として特別な意味を持つ場合があり文字化けの原因となることがあります。
ソ(カタカナの"そ") 噂 浬 欺 圭 構 蚕 十 申 曾 箪 貼 能 表
暴 予 禄 兔 喀 媾 彌 拿 杤 歃 濬 畚 秉 綵 臀 藹 觸 軆
鐔 饅 鷭 Ы(ロシア文字)
このため、showldc.cgiでは、日本語の部分は、”\”がエスケープ記号に解釈
されないように
print <<'EOF'
日本語の文章の一行目
二行目
三行目
EOF
という形式のprint文を用いるか(EOFは必ず行の初めから書いて下さい)、
あるいは、一行ずつ次の形式で出力して下さい。
print '日本語の一行の文章(HTMLのタグも含む)',"\n";
ここで、"\n"は、改行文字です。
- ファイルのアップロードとアクセス権の変更
以上の5個(+α)のファイルが用意できたら、貴方のWebページのあるマシンへ
の転送です。まず、リンクのページのディレクトリがない場合は、ディレ
クトリを作って下さい。一例として
、貴方のpublic_htmlディレクトリに”link”というディレクトリを作って
そこにリンクカウンタを設置する場合について説明します。ftpコマン
ドなら、login(logon)した後、
cd public_html
mkdir link
cd link
です。その他のftpソフトでは、メニューで”command/mkdir”や
"make new directory"などの項目を実行して作成して下さい。
次に、5つ(+α)のファイルを必ず”ASCIIモード(=テキストモード)”で転送
(put)してそれからアクセス権を次のように変更して下さい。
--------------------------------------------------
ファイル名 アクセス権
--------------------------------------------------
ldc.cgi 705
showldc.cgi 705
ldc1.txt 606
ldc2.txt 606
s_count.txt 606
---------------------------------------------------
アクセス権の意味や変更の仕方がわからない方は、竹ソフトのグラフィ
ックタイプのアクセスカウンタ”gacf”の設置方法のところを見て下さ
い。リンクをグループ分けして計数する場合は、更に多くのファイルが
必要ですが、拡張子が”.txt”のファイルは、アクセス権を606にして下
さい。
- cgiの実行許可
BIGLOBE(mesh)では、ファイルの拡張子が”cgi”となっていると自動的に
CGIファイルとして実行できるようプロバイダーの方でサーバーの設定を
おこなっています。しかし、サイトによっては特別な設定が必要です。
グラフィックタイプのアクセスカウンタ”gacf”の設置方法のページを
御参考にして下さい。また、サイトによっては、CGIファイルは特別な
ディレクトリに置いておく必要があります。その場合には、CGIのディレ
クトリの設定に特に御注意下さい。ファイルはフルパスで指定するのが
無難です。URLもどうしてもうまくいかない場合には、フルURLを指定
して下さい。
- リンクのページでのアンカータグの書き方(ldc.cgiの呼び方)
従来、リンクを行っているWebページに、例えば次のようにアンカータ
グ(リンクを行うために<A HREF="URL">と書くタグのこ
と)を書いていた場合について説明します。
<A HREF="http://www2a.meshnet.or.jp/~takesoft/">
この場合は、次のように変更して下さい。
<A HREF="./ldc.cgi?url=http://www2a.meshnet.or.jp/~takesoft/">
すなわち、”HREF="http”の部分を”HREF="./ldc.cgi?url=http”
のように変更するわけです。この変更は、URLによらず一定の文字列の置
換ですですので、エディタの置換機能を用いると比較的簡単に従来のアン
カータグを変更できます。ただし、ldc.cgiで記録をとる対象以外のアン
カータグまで、変えてしまわないようにして下さい。また、ftpサイトへの
アンカータグは、上の説明の”http”の部分が”ftp”となります。この
ように書くことにより、ldc.cgiへ、URL全体をパラメータとして渡すこ
とができます。”HREF=”の後の二重引用符の間の文字列は長くなっても
改行しないで下さい。実例は、竹ソフトのリンクのページのソースを御覧下さい。
(EUCコードで書いてあるので、日本語の部分が文字化けして見えるブラウ
ザもありますが、アンカータグの部分は、半角英数文字と記号なのでわ
かると思います。)
リンクのタグ(アンカータグ)のあるファイルがあるディレクトリと、
ldc.cgiのあるディレクトリが異なる場合は、ldc.cgiの前に例えば、
<A HREF="../link/ldc.cgi?url=http://www2a.meshnet.or.jp/~takesoft/">
のように、うまくldc.cgiを呼べるように指定します。この例では、相対
URLで指定しており、一つ親のディレクトリに戻り、そこの下の”link”
というディレクトリに”ldc.cgi”がある場合です。
リンクをグループ毎にカウントする場合は、ldc1パラメータを次のよう
に指定して下さい。
<A HREF="./ldc.cgi?ldc1=ldca1&url=http://www2a.meshnet.or.jp/~takesoft/">
<A HREF="./ldc.cgi?ldc1=ldcb1&url=http://www2a.meshnet.or.jp/~nakasoft/">
というように指定すると上のリンクは、ldca1.txtとldca2.txtを用いて
集計されますが、下のリンクは、ldcb1.txtとldcb2.txtを用いて集計さ
れます。これらのファイルは、すべて、アクセス権を606にしておく必要
があります。集計結果を表示する際は、showldc.cgiに上の場合は、
パラメータとして”ldc1=ldca1”を、下の場合は”ldc1=ldcb1”を指定
して表示させて下さい。
また、自分のWebページ内のページへの移動をカウントする場合は、
urlパラメータにフルURLを指定して下さい。例えば、ldc.cgiと同じディ
レクトリにあるリンクのWebページから竹ソフトのWebページ制作のページ
に行く人の数をカウントするには、次のようにします。
<A HREF="./ldc.cgi?url=http://www2a.meshnet.or.jp/~takesoft/hp/hp.html">
すなわち、自分の内部のWebページであっても外部のページと同じように
フルURLを指定する訳です。プロバイダによっては、ldc.cgiを置くディレ
クトリが決められているのでその場合には、ldc.cgiの前にディレクトリ
指定を挿入します。
- リンクカウンタのカウント数を表示するshowldc.cgiのパラメータ
showldc.cgiのパラメータと意味は、次の通りです。”def”は、標準値で
指定がない場合に用いられる値です。
- bdir
ldc1ファイルおよびs_countファイルがあるディレクトリを指定。
多くのプロバイダでは、フルパス(絶対パス)で指定する必要がある。
このパラメータがない場合には、showldc.cgiの初めのほうで定義
される$def_bdirの文字列が使用される。
- ldc1
ldc1ファイルの名前を指定する。実際には、この後に拡張子”.txt”
が付加される。このパラメータを変えることにより、リンクのカウント
をグループ毎に行うことができる。
このパラメータがない場合には、showldc.cgiの初めの方で定義されている
$def_ldc1の文字列が用いられる。ldc1のパラメータの最後の文字は、必ず、
半角の数字”1”でなければならない。この”1”の部分が”2”のファイルも
作業用のファイルとして用意する必要がある。
- s_count
showldc.cgiが実行された回数をカウントする数字を入れるファイル名。実際
は、この後に”.txt”が付加される。指定がないとshowldc.cgiの初めの部分
で定義されている$def_s_countの文字列が使用される。ldc1ファイルが複数あ
る場合にそれに応じてカウントする場合などに使用する。
- order
URLを表示する順番を指定します。
order=1 (ldc1.txtにある順番に表示(def))
order=2 (カウント数の多いURLから順に表示)
order=3 (カウント数の少ないURLから順に表示)
order=4 (URLのABC順に表示)
orderが2か、3の場合で、カウント数が同じ場合は、URLのアルファベット順で
表示されます。
- knum
一番左の欄に振る連番について指定します。
knum=0 (連番を振らない(def))
knum=1 (正順の連番を振る、1,2,3,...)
knum=2 (逆順の連番を振る)
- first
最初に表示し始めるURLの番号を指定します。orderの指定で並び替えた後の
何番目から表示するか指定します。
first=n (def 1)
- last
最後に表示するURLの番号を指定します。orderの指定で並び替えた後の何番目
まで表示するか指定します。
last=n (def 1000000)
標準値に大きな値を指定しているのは、lastを指定しない場合は、実際にある
URLを最後まで、表示するためです。
- tail
orderの指定で並び替えた後、最後の”n”個のURLを表示する場合
tail=n
と指定します。この指定があると、firstとlastの指定は、無視され、
tailの指定が優先されます。
- リンクカウンタのカウント数を表示するshowldc.cgiの呼び方
(その1:アンカータグを使う場合)
リンクのページから、掲示板へリンクを張るには、例えば次のように
して下さい。”order”パラメータのによってURLの並べ
方を指定します。パラメータは、半角文字の英語の小文字と半角数字を
用いて下さい。これらのリンクをクリックすると、[]内の文
字列の内容がブラウザに表示されます。最後から2番目は、カウント数
の多い順から、20番目までを表示する場合です。最後は、カウント数
の多い順から、20番目までを逆順で表示する場合です。
<H3>リンクの使用実績の表示</H3>
<A HREF="showldc.cgi?order=1&knum=1">[元の順]</A>
<A HREF="showldc.cgi?order=2&knum=1">[多い順]</A>
<A HREF="showldc.cgi?order=3&knum=2">[少ない順]</A>
<A HREF="showldc.cgi?order=4">[URLのABC順]</A><BR>
<A HREF="showldc.cgi?order=2&knum=1&last=20">[TOP 20]</A>
<A HREF="showldc.cgi?order=3&knum=2&tail=20">[COUNT DOWN TOP 20]</A>
ここで、元の順とは、ldc1.txtにあるURLの順番です。多い順は、カウン
ト数の多い順で、カウント数が同じ場合は、URLのABC順です。少ない
順は、カウント数の少ない順で、カウント数が同じ場合は、URLのABC順
です。URLのABC順は、文字通り、URLのアルファベット順です。
- リンクカウンタのカウント数を表示するshowldc.cgiの呼び方
(その2:FORMのボタンを使う場合)
このほか、ボタンでshowldc.cgiを呼び出す場合は、リンクのWebページ
に次のように指定します。
<H3>リンクの使用実績の表示</H3>
<FORM ACTION="showldc.cgi" METHOD="GET">
<INPUT TYPE=hidden NAME="order" VALUE="2">
<INPUT TYPE=hidden NAME="knum" VALUE="1">
<INPUT TYPE=hidden NAME="last" VALUE="10">
<INPUT TYPE=submit VALUE="TOP 10">
</FORM>
<FORM ACTION="showldc.cgi" METHOD="GET">
<INPUT TYPE=hidden NAME="order" VALUE="3">
<INPUT TYPE=hidden NAME="knum" VALUE="2">
<INPUT TYPE=hidden NAME="tail" VALUE="10">
<INPUT TYPE=submit VALUE="COUNT DOWN TOP 10">
</FORM>
”TYPE=hidden”のINPUTタグのVALUEの文字列には、NAMEで指定したパ
ラメータに設定する値を指定し
ます。このNAMEとVALUEの右辺は、半角文字で指定して下さい。上のボタン
の例は、カウント数上位10位まで正順で表示する場
合の例です。2番目のボタンの例は、カウント数を上位10位まで逆順で表
示する場合の例です。
- リンクカウンタのカウント数を表示するshowldc.cgiの呼び方
(その3:ブラウザのURL窓を使う場合)
リンクのカウント結果を公開しない場合は、showldc.cgiを秘密のページ
から、呼ぶように設定したり、ブラウザのURL窓にフルURLで指定して実行
するようにもできます。この際には、例えば竹ソフトの場合にカウント数
の多い順に表示する際には
http://www2a.meshnet.or.jp/~takesoft/link/showldc.cgi?order=2&knum=1
というようにパラメータも指定して実行して下さい。一度表示した際に
そのURLをブラウザのブックマークに保存しておくと同じ形式でカウント
数を見る際に便利です。
著作・制作(c)1996-2013 竹中: 竹ソフトのWebページに掲載の文書,図,表,
アイコン,写真,プログラム等の無断転載はしないで下さい。竹ソフトのサイト
から転送したファイルにより生じた損害等あるいは転送作業による損害等は
補償できませんので御了承下さい。
Copyright (c)1996-2013 Takenaka: All rights reserved.
連絡先:takesoft(atマーク)mud.biglobe.ne.jp
/初期設置日:1996年11月11日/最終変更日:2013年8月24日