ブログ記事を新しくエントリーする際、ブログポータルサイト「にほんブログ村」や「BlogPeople」へ送信するトラックバックURLを本CGIに登録し、楽にクリップボードにコピーするものです。
・一つのブログ記事に複数のトラックバックURLを設定する場合、テキストファイルなどに保存しておいたURLを一つ一つコピペするのは面倒
・違うPCからブログのエントリーをする場合、そのPCにもトラックバックURLを記載したテキストファイルなどを保存しておく必要があり、もう一つのPCとのデータ同期が面倒
という事でこのCGIを作成しました。
本スクリプトは複数の人が同時にファイルに書き込まないようにする制御にflock関数を使用しています。
まず本スクリプトを利用する前に、使用しているプロバイダ(サーバ)がflock関数に対応しているかどうかの確認をしてから利用して下さい。
サーバの管理者に問い合わせていただくか、KENT WEBにて配付されているSymlink Checkerなどのツールを設置したいサーバに設置し、実行させると対応状況が表示されます。
私が使用しているXREA、ロリポップ、インフォシークiswebライト、Hi-Ho(接続会員用webスペース)をSymlink Checkerでチェックしたところ、flock関数に対応しており、実際、設置してみましたが特に問題は見られませんでした。
zipファイルを解凍すると以下のファイルが展開されます。
その中に「.」で始まる名前のファイルがありましたら不要ですので削除しても構いません。
public_html (ホームディレクトリ) | +-- copytburl / copytburl.cgi [705] | jcode.pl [604] | copyclipbrd.swf +-- data / data.txt [606]
本CGIは「Shift-JIS」というほとんどの掲示板用CGIでも使われている文字コードで記述していますが、Shift-JISで書かれたperlスクリプト(CGI)をUNIXサーバーで実行させた時などに、一部の文字で発生します。
例えば「表示」のShift-JIS漢字コードは「95 5C 8E A6」ですが、この「表(95 5C)」の5Cというコードが 、メタ文字(特殊文字)「\(バックスラッシュ)」と重複しているために、二つの文字「95 5C(表)」「8E A6(示)」が「95 8E 」と「A6」と解釈され、侮ヲ(半角)という文字化けが発生します。
この問題を解決するには以下の回避策を参考にして下さい。
もっと詳しく知りたい方は「cgi 文字化け」などで検索してみてください。
「文字化けする文字一覧」にある文字の後に「\」を付ける。
例:"表\示する"
$str = '表示する'ただしシングルクォート「'」の前に「文字化けする文字一覧」にある文字があると「'」も別の文字として認識されエラーが出てしまうので、この場合に限り「文字化けする文字一覧」にある文字の後に「\(バックスラッシュ)」を付加する必要がある。
$cgi_title = 'Multi Schedule Board';
を
$cgi_title = 'スケジュール調整表';
としてしまうと「表」が文字化けする文字で、後の「'」も別の文字と認識されエラーとなるので
$cgi_title = 'スケジュール調整表\';
と記述する。
文字(コード) | ||||
---|---|---|---|---|
—(815C) | ソ(835C) | Ы(845C) | Ⅸ(875C) | 噂(895C) |
浬(8A5C) | 欺(8B5C) | 圭(8C5C) | 構(8D5C) | 蚕(8E5C) |
十(8F5C) | 申(905C) | 曾(915C) | 箪(925C) | 貼(935C) |
能(945C) | 表(955C) | 暴(965C) | 予(975C) | 禄(985C) |
兔(995C) | 喀(9A5C) | 媾(9B5C) | 彌(9C5C) | 拿(9D5C) |
杤(9E5C) | 歃(9F5C) | 濬(E05C) | 畚(E15C) | 秉(E25C) |
綵(E35C) | 臀(E45C) | 藹(E55C) | 觸(E65C) | 軆(E75C) |
鐔(E85C) | 饅(E95C) | 鷭(EA5C) | 偆(ED5C) | 砡(EE5C) |
copytburl.cgiをエディタ開き、赤字の個所を修正します。
#!/usr/local/bin/perl
$title = 'Copy Trackback URL';
$file_name = 'data.txt';
$file_dir = './data/';
$swf_url = 'copyclipbrd.swf';
$cgi_url = './copytburl.cgi';
$admin_pass = '0123';
以上の設定が終了したら、各ファイルを所定のディレクトリにアップし、以下のとおりにパーミッションを設定して下さい。
サーバーによっては推奨値が違う場合がありますので、その場合はサーバー側の推奨値を優先してください。
特に接続プロバイダーがユーザーに提供しているホームページサービスには制限が多いです。
ファイル | パーミッション |
---|---|
copytburl.cgi | 755 or 705 or 700 |
jcode.pl | 644 or 604 or 600 |
copyclipbrd.swf | ー |
dataディレクトリ | 777 or 707 or 705 |
data.txt | 666 or 606 or 600 |
PC | PowerMac G4 1.25GHz Dual FW800 メモリー 1.25GB |
---|---|
サーバー | Apache 1.3.33 (OSX10.3標準) |
Perl | Perl 5.8.1-RC3 (OSX10.3標準) |