|
Windows用の ActivePerl は symlink 関数に対応していません。 サーバでの運用と自パソコンでの perl の両方を使うのであれば カウンタ等の排他制御は mkdir、rmdir が適しています。
アクセスカウンタ用cgiプログラムをプロバイダのサーバへ置いています。 ホームページアクセスカウンタが9月29日17:31から10月1日10:06まで止まってしまいました。 perlでプログラムし、ファイルの排他制御はsymlink関数で行っています。 7年間はトラブルに気付きませんでした。 今回なんらかの原因でシンボリックリンクの残骸が残ってしまい、結果としてアクセスカウンタが停止してしまいました。 ありえないことが起きたようです。 例えばシステムのメンテとかハードの故障とかの何かが割り込んだのではないかと推測しています。 ありえないことの対策も必要であることを実感しました。 そこで下記を組み込みました。 @通常は数秒以内に処理は終了するはずです。 Aプロセスが10秒待たされた場合はunlinkを強制実行させるようにしました。
レスをツリー構造で表示できる「KENTさんのWeb Forum」を使用しました。 KENTさんのWeb Forum http://www.kent-web.com/bbs/wforum.html Q&Aの形態に適しているようです。 レスの付いたスレッドが最上位に移動するのも便利です。 この掲示板を自分のパソコンの中でテストするには 1.初めにWWWサーバとPERLをインストールします。 KENTさんの説明 http://www.kent-web.com/www/anhttpd/www1.html 2.掲示板プログラムをインストールします。 KENTさんの説明 http://www.kent-web.com/www/anhttpd/www2.html
以下は Web Forum v3.24 (2002/02/04) の改良経過です。 プログラム内の該当文の場所を探すには、ワードパッドで開いてから メニュー「編集」→「検索」 下記の文字を入力する。 1.記事を書くボックスを大きくする。 標準では、箱が小さ過ぎますのでより大きくします。 修正するプログラム名称:wforum.cgi 修正する場所:3ヶ所(アクセスしたブラウザの種類に対応してサイズを切り替えている部分です) <標準> $nam_wid = 30; $sub_wid = 40; $com_wid = 64; $url_wid = 70; <大きくする> $nam_wid = 30; $sub_wid = 80; $com_wid = 100; $url_wid = 80; 注記1)管理者用入力ボックスのサイズは wf_admin.cgi 内で定義しています。 下記となっていますが、「$subj_wid」は間違いですので「$sub_wid」に書き換えて下さい。 こうしないと、タイトルの幅が大きくなりません。 上記 wforum.cgi の場合と同じサイズが良いでしょう。 if ($agent =~ /MSIE 3/i) { $nam_wid = 30; $subj_wid = 40; $com_wid = 64; $url_wid = 46; } elsif ($agent =~ /MSIE 4/i || $agent =~ /MSIE 5/i) { $nam_wid = 30; $subj_wid = 40; $com_wid = 64; $url_wid = 78; } else { $nam_wid = 20; $subj_wid = 27; $com_wid = 62; $url_wid = 52; } 2.写真と図を記事中の任意の場所に入れられるようにする。 修正するプログラム名称:wforum.cgi 機能:記事の中に写真(.jpg)と図(.gif、png)を掲載できるようにしました。理解が深まるでしょう。 表示したいファイルは、インターネット上のサーバへ置いてください。どこでもかまいません。 ただし、ファイルの指定は下記の形でなければなりません。 http://****/****/****.jpg http://****/****/****.gif http://****/****/****.png ファイル指定が書かれた場所に写真、図を挿入します。 写真等を挿入する場所に制限はありません。文の途中にも挿入できます。 「ここに写真(.jpg)を載せて https://www.imaiz.com/imaizumi/im-pichan19910518-3.jpg こちらには図(.gif)を https://www.imaiz.com/im-FAXscanner.gif」 と書くと下記のように表示されます。 ここに写真(.jpg)を載せて こちらには図(.gif)を <修正内容> 2行追加するのみです。追加場所は下記参照 #--------------# # 自動リンク # #--------------# sub auto_link { $_[0] =~ s/([^=^\"]|^)(http\:\/\/[\w\.\~\-\/\?\&\=\;\#\:\%\+]+)/$1<a href=\"$2\" target=\"_blank\">$2<\/a>/g; # 2002/3/30 IMAIZUMI 下記2行を追加した→写真と図を記事中の任意の場所に表示する $_[0] =~ s/([^=^\"]|^)(http\:\/\/[\w\.\~\-\/\?\&\=\;\#\:\%\+]+\.[jJ][pP][gG])/$1<img src=\"$2\" align\=middle border\=0 >/g; $_[0] =~ s/([^=^\"]|^)(http\:\/\/[\w\.\~\-\/\?\&\=\;\#\:\%\+]+\.[gG][iI][fF])/$1<img src=\"$2\" align\=middle border\=0 >/g; $_[0] =~ s/([^=^\"]|^)(http\:\/\/[\w\.\~\-\/\?\&\=\;\#\:\%\+]+\.[pP][nN][gG])/$1<img src=\"$2\" align\=middle border\=0 >/g; }
リストツリー表示で年を知りたい時があります。そこで修正してみました。 修正するプログラム名称:wforum.cgi <修正内容> #--------------------# # リストツリー表示 # #--------------------# sub ListTreeOpen { 途中省略 $i=0; while () { local($no,$reno,$lx,$sub,$email,$url,$name, $dat,$msg,$timek,$h,$pw,$w,$oya,$smail,$res) = split(/<>/); # ここへ下記1行を追加 $dat = &get_time1($timek); 途中省略 #--------------# # 時間の取得 # #--------------# sub get_time { 途中省略 } # get_time を修正して、下記 get_time1 を作成する sub get_time1 { local($time, $log) = @_; if (!$time) { $time = time }; ($sec,$min,$hour,$day,$mon,$year,$wday) = localtime($time); @week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); $year1 = substr($year+1900,-2); $date = sprintf("%02d/%02d/%02d(%s) %02d:%02d", $year1,$mon+1,$day,$week[$wday],$hour,$min); return $date; }