やりたい事は、
ココがポイント
ホームページ上のファイルをダウンロードしたらカウントして集計
ができる事。
CGIやPHPのどっちのプログラムでもよかったのですが、中々探すと設置が難しかったり操作性が悪かったりと気に入った物が見つかりませんでした。
そんな中、K's DownLoad Counter v1.0というもう改編もしてないようなCGIプログラムが簡単そうだったので試してみました。
ファイルを解凍しサーバーにアップ
ファイルを解凍すると、説明書がテキストファイルで入っており、見てみると、20年前のCGIプログラムのようです。
それはいいとして、設置方法は下記のファイルをサーバーにアップロードするだけというシンプルです。
アップロードファイルメモ
- down.cgi 755 or 705
- downlog.cgi 755 or 705
- down.dat 666 or 606
- access.dat 666 or 606
- cnt.gif
ただ、自分のサーバー環境によって、CGIプログラムの先頭部分は変更しなければなりません。
#!/usr/bin/perl
自分の場合は、down.cgiの下記の部分を変更しました。
$file = './down.dat'; # ダウンロードデータの保存ファイル
$access = './access.dat'; # アクセス情報の保存ファイル
$acs_log = '1000'; # アクセスログの保存数
$lock_key = 0; # ファイルロック(0=off,1=on)
$home = 'https://pctips.jp/'; # 戻りURLの指定
ココに注意
アップロードはアスキーモードでアップロードして、パーミッション権限を変更しました。
集計したいファイルのリンクの設置
自分の場合は、集計したいファイルと同じ場所にCGIをアップロードしましたので、下記のようなリンクを貼ればいいようです。
<a href="./down.cgi?名前=URL>ダウンロードはこちら</a>
今回は、自作テキストのダウンロードカウントしたいので、
<a href="./down.cgi?ワード5級2019=word/lock-word5-2019.pdf" download="ワード5級2019.pdf">ワード5級2019</a>
ちなみに、
ココがポイント
download="ワード5級2019.pdf"
を入れないとブラウザでPDF表示になりダウンロードにならないので入れるのを忘れないように!
実際にリンク先をクリックしてダウンロードできることを確認しました。
集計画面を確認するが文字化け
集計画面を見るには、downlog.cgiをWEB上で見ればいいだけです。
ちゃんとカウントは取れているようですが、文字化けしていました。
ココに注意
ここから文字コードの地獄へと突入です
CGIのプログラムの方に、文字コードを設定したり、ファイルのアップロードを何度も確認してみたりやっても文字化けは直りませんでした。
文字化けの原因は、BlueGriffonだった!
ホームページエディターをホームページビルダーから、BlueGriffonに変更しました。
https://pctips.jp/pc-soft/bluegriffon-wysiwyg-editor/
ココに注意
BlueGriffonに日本語のリンクを貼ると自動で文字化けに変換
されます。
<a href="./text/down.cgi?%E3%83%AF%E3%83%BC%E3%83%89%EF%BC%95%E7%B4%9A%EF%BC%92%EF%BC%90%EF%BC%91%EF%BC%99=word/lock-word5-2019.pdf"
download="ワード5級2019.pdf">ワー ド5級2019</a>
TeraPadで開き直して、日本語に変更したらちゃんと文字化け直りました。
つまり
CGIのプログラムの方の文字コードは関係ありませんでしたという結末です。