うぇぶ会議室マニュアル

あなたは、1996年6月25日以来 ??? 人目のお客様です。


・ 最新リリース版(Ver.1.7c)アーカイブまたは 自己解凍CGIをダウンロードする
・ 最新β版及びパッチ ・ 拡張機能ライブラリ
・ オンライン読み用 Separated 版

ここは「うぇぶ会議室」のオフラインマニュアルペーヂです。 「うぇぶ会議室」のスクリプトへのバグレポート、質問、要望等は 此処にある「うぇぶ会議室」の 「うぇぶ会議室の部屋3」で 受け付けています。

目次

  1. 概要
  2. 使用法
    1. 会議室選択
    2. 記事一覧
    3. 記事本体
    4. 記事の投稿
    5. 記事のキャンセル
    6. ユーザカスタマイズ
  3. インストール
    1. アーカイヴの展開
      1. tar+gzipによる圧縮形式
      2. 自己解凍CGI形式
    2. セットアップ
      1. site.plの設定
      2. サーヴァ環境による変更
      3. 見かけの統一
      4. 管理情報の設定
  4. トラブルシューティング
    1. エラーメッセーヂ
    2. FAQ
  5. 拡張機能
    1. 拡張機能とは?
    2. 拡張機能ライブラリ
    3. 拡張機能の作り方
  6. 付録
    1. 著作権
    2. 免責
    3. 作成履歴
    4. これからの予定
    5. 最新β版及びパッチ
  7. 索引

1. 概要

「うぇぶ会議室」とは、WWW上でNetNewsやBBSの様に情報交換をするための スクリプトです。言語にはperlを使っていますので、CGIにperlを使えるサーヴァで あればどこででも利用できます。

同種の物はたくさんあって、これもまあ似たような物ですが、FRAMEを扱える ブラウザを利用している時には、会議室選択、記事一覧、記事本体を別々のフレームに 表示することによって、なるべく話の流れが良く見えるように構成しています。 もちろん、FRAMEが扱えないブラウザでも、また、TEXTベースのブラウザでも 問題なく扱えるようになっています。 (何しろ作者がlynxの 愛好者なので。(^^;;)

HTTP-Cookies に対応しているブラウザを使っている場合には、 look & feel や拡張機能のカスタマイズがサーヴァサイドのみならず ユーザサイドでも出来るようになっています。

フレーム表示した場合、この様な感じに表示されます。

会議室選択 会議室選択 記事一覧 記事一覧 記事本体

[FRAME表示の「うぇぶ会議室」の図]


2. 使用法

それぞれの項目ごとに使い方を解説します。

  1. 会議室選択
  2. 記事一覧
  3. 記事本体
  4. 記事の投稿
  5. 記事のキャンセル
  6. ユーザカスタマイズ

2.1 会議室選択

開設されている会議室がリストされます。

会議室名の後ろには最新の記事が投稿された日付が表示されます。 過去に会議室選択ウィンドゥをアクセスした時の情報が ブラウザにキャッシュされている時には、 その時より新しい記事がある場合、 更新日時の表示は色を変えるなど強調されますので、 容易に新着記事があることが分かります。

リストされている会議室を選択すると、 記事一覧ウィンドゥに最新の記事一覧が、 記事本体ウィンドゥにはその会議室の案内が表示されます。

2.2 記事一覧

選択された会議室に投稿されている記事がリストされます。 最初に会議室が選択された時には、 最新の記事を含む一覧ペーヂが表示されます。

記事一覧の最初と最後には、

[DATE MODE]|会議室選択 新規記事投稿 (記事番号[1〜10])

あるいは

[THREAD MODE]|会議室選択 新規記事投稿 (記事番号[1〜10])

と言う様な行が表示されます。

最初のアイコン ([DATE MODE]/[THREAD MODE]) は 記事一覧の表示形式をスレッドモード(コメントリンクモード)と 日付順モードの間で切り替えるものです。

スレッドモードにいる時は日付順モードに移るアイコン ([DATE MODE]) が、 日付順モードにいる時はスレッドモードに移るアイコン ([THREAD MODE]) が 表示されていますので、モードを替えたい時に使って下さい。

次の (会議室選択) は会議室選択ウィンドゥを更新するものです。 しばらく記事を読んだ後に、新着記事がないかどうかチェックするのに便利でしょう。 新着記事があれば日付欄が強調表示されます。

次の (新規記事投稿) を選択すると、 記事本体ウィンドゥに選択された会議室への新規記事投稿フォームが開きます。 特定の記事へのフォローアップ記事を投稿したい時は、 記事本体にあるフォロー記事投稿を選んで下さい。

次の欄はそのペーヂに表示されている記事範囲を示しています。 会議室の記事数が1ペーヂで表示できる数より多い時は、 最初の行には、

[DATE MODE]|会議室選択 新規記事投稿 [TOP][PREV][WIDE] (記事番号[251〜280])

と言うペーヂ移動のアイコンが加わります。

ここで、 [TOP]は最初のペーヂへの移動、 [PREV]は一つ前のペーヂへの移動、 [WIDE]は表示範囲の前方拡大(1ペーヂ分)です。

同様に、前のペーヂにいる時には、最後の行に、

[THREAD MODE]|会議室選択 新規記事投稿 [BOT][NEXT][WIDE] (記事番号[226〜255])

と言うペーヂ移動アイコンが加わります。 意味は前のペーヂへの移動と同じく、 [BOT]は最後のペーヂへの移動、 [NEXT]は後ろのペーヂへの移動、 [WIDE]は表示範囲の後方拡大(1ペーヂ分)です。

スレッドモードで表示されている時には、 フォローアップ記事は元記事に対して一段インデントが付けられてリストされます。 フォローアップが重なるに連れてインデントは一段ずつ深くなりますが、 あまりインデントが深くなった時には、 インデント深さを記事アイコンの前に表示して 実際のインデントの代わりとする事により、 見づらくなることを避けています。

2.3 記事本体

選択されている記事が表示されます。 最初に選択された時には会議室の案内が表示されます。

記事の最初の行には、

新規記事投稿 フォロー記事投稿 記事のキャンセル

と言う行が表示されます。

最初の (新規記事投稿) を選ぶと、 現在選択されている会議室への新規記事投稿モードになります。

次の (フォロー記事投稿) を選ぶと、 現在表示されている記事へのフォローアップ記事投稿モードになります。

また、(記事のキャンセル) を選ぶと、 現在表示されている記事のキャンセルモードになります。

記事本体の最初には記事のヘッダが表示されます。

From:フィールドには 投稿者の名前とメールアドレスが記載されます。 投稿者がリンク先の URLを登録した場合には、 名前からリンクが張られます。

Subject:フィールドには 表題が記載されます。

Date:フィールドには 投稿日時が記載されます。 日時は通常、サーヴァの現地時間で表わされます。

フォローアップ記事の場合には、これらに加えてフォロー先の記事番号が Reference:フィールドに記載されリンクされます。

ヘッダから空行を置いて記事本文が表示されます。 記事本文は <PRE></PRE> タグで括られて表示されますので、 記事を書くときにはそれを念頭に置いて下さい。

2.4 記事の投稿

2.5 記事のキャンセル

2.6 ユーザカスタマイズ


3. インストール

「うぇぶ会議室」のスクリプトは 「ソフトウェア広場」でダウンロード出来ます。

3.1 アーカイヴの展開

アーカイヴは tar+gzipによる圧縮形式と自己解凍CGI形式の 2種類の形式で配布しています。

tar+gzipによる圧縮形式
Unixで一般的な圧縮形式なので、 サーヴァにshellアカウントがある方はこちらを使うと便利でしょう。
自己解凍CGI形式
ダウンロードしたファイルをCGIとして実行すると、 アーカイブが解凍されます。 サーヴァ上にshellアカウントが無かったり、 Unixのツールに不慣れな方はこちらを使うと良いでしょう。

それぞれの形式には以上のような特徴がありますので、 お好きな方を選択して下さい。

3.1.1 tar+gzipによる圧縮形式

適当なディレクトリに tar+gzによるアーカイヴを転送し 展開すると forumと言うディレクトリが出来て、 その中に全てのスクリプト類がインストールされます。

tar+gzipのアーカイヴファイルを ダウンロード/アップロードする時には必ずバイナリモードで行なう事に 気をつけて下さい。

展開は GNU-tar が使えるなら、

tar xvzf forum-1.7a.tar.gz

の様にすれば良いでしょう。 通常の tar と gzip しか無い場合は、

gzip -dc forum-1.7a.tar.gz | tar xvf -

の様にパイプを使って、組み合わせる必要があります。

各ファイルとディレクトリのパーミッションは 使用しているサーヴァの環境に適切な物を設定する必要があります。

通常のサーヴァでは、 一般ユーザとは異なった単一のサーヴァ権限でCGIの実行が行なわれるので、 スクリプトによって書き込みが行なわれるファイルとディレクトリには、 other に対する許可を与えなければならないことに気をつけて下さい。

通常のサーヴァ環境でのディレクトリリストは 以下の様にする必要があります。

$ ls -lR
total 174
-r-----r--   1 nir      hyper        179 May 27  1996 CancelPoster.html
-r-----r--   1 nir      hyper        209 May 27  1996 CancelSystem.html
-r-----r--   1 nir      hyper        464 Dec 17  1996 Preface.html
-r-x---r-x   1 nir      hyper      12316 Mar  7  1997 article.cgi
-r-x---r-x   1 nir      hyper       5875 Mar 10  1997 cancel.cgi
-r-x---r-x   1 nir      hyper       8266 Mar  4  1997 contents.cgi
-r-x---r-x   1 nir      hyper       8543 Mar  4  1997 customize.cgi
-r-----r--   1 nir      hyper      14662 Mar  7  1997 forum.pl
-r-----r--   1 nir      hyper       3890 Jan 30  1997 http.pl
drwx---r-x   2 nir      hyper       1024 Mar 10  1997 icons
-r-x---r-x   1 nir      hyper       2695 Mar  7  1997 index.cgi
-r-----r--   1 nir      hyper      16777 Feb 25  1997 jcode.pl
-r-x---r-x   1 nir      hyper       1126 Mar  4  1997 menu.cgi
-rw----rw-   1 nir      hyper          0 Jan 30  1997 new_arrival
-r-----r--   1 nir      hyper       4022 Mar 10  1997 site.pl
drwx---rwx   2 nir      hyper       1024 Mar 10  1997 test

./icons:
total 34
-r-----r--   1 nir      hyper        144 Jun  4  1996 bot.gif
-r-----r--   1 nir      hyper        155 May 14  1996 cancel.gif
-r-----r--   1 nir      hyper        146 Sep 24  1996 date.gif
-r-----r--   1 nir      hyper        149 May 11  1996 follow.gif
-r-----r--   1 nir      hyper        148 Dec 13  1996 frame.gif
-r-----r--   1 nir      hyper        147 Sep 24  1996 help.gif
-r-----r--   1 nir      hyper        145 May 30  1996 menu.gif
-r-----r--   1 nir      hyper        149 Dec 13  1996 multi.gif
-r-----r--   1 nir      hyper        146 May 11  1996 new.gif
-r-----r--   1 nir      hyper        162 Oct 17  1996 newtext.gif
-r-----r--   1 nir      hyper        150 Jun  4  1996 next.gif
-r-----r--   1 nir      hyper        143 Dec 13  1996 noframe.gif
-r-----r--   1 nir      hyper        147 Jun  4  1996 prev.gif
-r-----r--   1 nir      hyper        147 May 11  1996 text.gif
-r-----r--   1 nir      hyper        153 Sep 24  1996 thread.gif
-r-----r--   1 nir      hyper        143 Jun  4  1996 top.gif
-r-----r--   1 nir      hyper        148 Jun  4  1996 wide.gif

./test:
total 4
-rw----rw-   1 nir      hyper         26 Oct 17  1996 contents
-r-----r--   1 nir      hyper        161 May 27  1996 index.html

(ファイルのサイズや更新日時はヴァージョンによって異なることに 気をつけて下さい。このリストは Ver.1.7a の物です)

あらかじめ test と言う会議室用のディレクトリが出来ていますが、 サーヴァによって書き込みが行なわれる test ディレクトリや、 その中にある contents ファイル、 それから最新記事の投稿日時に更新時間が合わせられる new_arrival の各ファイルは、 other に対する書き込みパーミッションが 付けられていることに気を付けて下さい。

サーヴァによってはSetUIDの機能を用いて、 CGIの実行を各ユーザの権限で行なう様になっている所があります。 そう言うサーヴァでは最小限度のパーミッションを付けておけば スクリプトが正常に実行できますから、セキュリティ上有利になります。

SetUIDサーヴァ環境でのディレクトリリストは 以下の様に出来ます。

total 174
-r-----r--   1 nir      hyper        179 May 27  1996 CancelPoster.html
-r-----r--   1 nir      hyper        209 May 27  1996 CancelSystem.html
-r-----r--   1 nir      hyper        464 Dec 17  1996 Preface.html
-r-x------   1 nir      hyper      12316 Mar  7  1997 article.cgi
-r-x------   1 nir      hyper       5875 Mar 10  1997 cancel.cgi
-r-x------   1 nir      hyper       8266 Mar  4  1997 contents.cgi
-r-x------   1 nir      hyper       8543 Mar  4  1997 customize.cgi
-r--------   1 nir      hyper      14662 Mar  7  1997 forum.pl
-r--------   1 nir      hyper       3890 Jan 30  1997 http.pl
drwx-----x   2 nir      hyper       1024 Mar 10  1997 icons
-r-x------   1 nir      hyper       2695 Mar  7  1997 index.cgi
-r--------   1 nir      hyper      16777 Feb 25  1997 jcode.pl
-r-x------   1 nir      hyper       1126 Mar  4  1997 menu.cgi
-rw-------   1 nir      hyper          0 Jan 30  1997 new_arrival
-r--------   1 nir      hyper       4022 Mar 10  1997 site.pl
drwx-----x   2 nir      hyper       1024 Mar 10  1997 test

./icons:
total 34
-r-----r--   1 nir      hyper        144 Jun  4  1996 bot.gif
-r-----r--   1 nir      hyper        155 May 14  1996 cancel.gif
-r-----r--   1 nir      hyper        146 Sep 24  1996 date.gif
-r-----r--   1 nir      hyper        149 May 11  1996 follow.gif
-r-----r--   1 nir      hyper        148 Dec 13  1996 frame.gif
-r-----r--   1 nir      hyper        147 Sep 24  1996 help.gif
-r-----r--   1 nir      hyper        145 May 30  1996 menu.gif
-r-----r--   1 nir      hyper        149 Dec 13  1996 multi.gif
-r-----r--   1 nir      hyper        146 May 11  1996 new.gif
-r-----r--   1 nir      hyper        162 Oct 17  1996 newtext.gif
-r-----r--   1 nir      hyper        150 Jun  4  1996 next.gif
-r-----r--   1 nir      hyper        143 Dec 13  1996 noframe.gif
-r-----r--   1 nir      hyper        147 Jun  4  1996 prev.gif
-r-----r--   1 nir      hyper        147 May 11  1996 text.gif
-r-----r--   1 nir      hyper        153 Sep 24  1996 thread.gif
-r-----r--   1 nir      hyper        143 Jun  4  1996 top.gif
-r-----r--   1 nir      hyper        148 Jun  4  1996 wide.gif

./test:
total 4
-rw-------   1 nir      hyper         26 Oct 17  1996 contents
-r-----r--   1 nir      hyper        161 May 27  1996 index.html

CGIスクリプトや会議室ディレクトリの other 権限が ことごとく制限してあるのに注意して下さい。 SetUIDサーヴァではこれでも正常に動作しますので、 同じサーヴァを共有する人たちの間でも セキュリティが保たれることになります。

3.1.2 自己解凍CGI形式

自己解凍CGI形式を用いて会議室スクリプトをインストールする場合、 まず、「うぇぶ会議室」をインストールするためのディレクトリを作り、 そこに自己解凍CGIを転送します。 自己解凍CGIのダウンロード/アップロードは、 両方ともテキストモードで行なって下さい。

自己解凍CGIの場合、解凍はCGI実行によって行ないます。

まず、今アップロードした自己解凍CGIにサーヴァによる実行権限を付けます。 次にCGIのある「うぇぶ会議室」をインストールするディレクトリ自体に サーヴァによる書き込み権限を付けます。

しかる後に、自己解凍CGIをブラウザで読み込んで下さい。 すると、CGI自身に書き込まれている「うぇぶ会議室」が展開されて 個別のファイルになります。 ファイル/ディレクトリのパーミッション等も適切なものに設定されるはずです。 不要になった自己解凍CGI自体と、 中間的に生成された forum.tar.Z と言うアーカイヴは 削除してしまって構いません。

典型的な環境で自己解凍された結果は以下のようになります。

ftp> ls -lR
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 174
-r-----rw-   1 httpd    httpd        179 May 27  1996 CancelPoster.html
-r-----rw-   1 httpd    httpd        209 May 27  1996 CancelSystem.html
-r-----rw-   1 httpd    httpd        464 Dec 17  1996 Preface.html
-r-x---rwx   1 httpd    httpd      12316 Mar  7  1997 article.cgi
-r-x---rwx   1 httpd    httpd       5875 Mar 10  1997 cancel.cgi
-r-x---rwx   1 httpd    httpd       8266 Mar  4  1997 contents.cgi
-r-x---rwx   1 httpd    httpd       8543 Mar  4  1997 customize.cgi
-r-----rw-   1 httpd    httpd      14662 Mar  7  1997 forum.pl
-r-----rw-   1 httpd    httpd       3890 Jan 30  1997 http.pl
drwx---rwx   2 httpd    httpd       1024 Dec 16 04:13 icons
-r-x---rwx   1 httpd    httpd       2695 Mar  7  1997 index.cgi
-r-----rw-   1 httpd    httpd      16777 Feb 25  1997 jcode.pl
-r-x---rwx   1 httpd    httpd       1126 Mar  4  1997 menu.cgi
-rw----rw-   1 httpd    httpd          0 Jan 30  1997 new_arrival
-r-----rw-   1 httpd    httpd       4022 Mar 10  1997 site.pl
drwx---rwx   2 httpd    httpd       1024 Dec 16 04:13 test

./icons:
total 34
-r-----rw-   1 httpd    httpd        144 Jun  4  1996 bot.gif
-r-----rw-   1 httpd    httpd        155 May 14  1996 cancel.gif
-r-----rw-   1 httpd    httpd        146 Sep 24  1996 date.gif
-r-----rw-   1 httpd    httpd        149 May 11  1996 follow.gif
-r-----rw-   1 httpd    httpd        148 Dec 13  1996 frame.gif
-r-----rw-   1 httpd    httpd        147 Sep 24  1996 help.gif
-r-----rw-   1 httpd    httpd        145 May 30  1996 menu.gif
-r-----rw-   1 httpd    httpd        149 Dec 13  1996 multi.gif
-r-----rw-   1 httpd    httpd        146 May 11  1996 new.gif
-r-----rw-   1 httpd    httpd        162 Oct 17  1996 newtext.gif
-r-----rw-   1 httpd    httpd        150 Jun  4  1996 next.gif
-r-----rw-   1 httpd    httpd        143 Dec 13  1996 noframe.gif
-r-----rw-   1 httpd    httpd        147 Jun  4  1996 prev.gif
-r-----rw-   1 httpd    httpd        147 May 11  1996 text.gif
-r-----rw-   1 httpd    httpd        153 Sep 24  1996 thread.gif
-r-----rw-   1 httpd    httpd        143 Jun  4  1996 top.gif
-r-----rw-   1 httpd    httpd        148 Jun  4  1996 wide.gif

./test:
total 4
-rw----rw-   1 httpd    httpd         26 Oct 17  1996 contents
-r-----rw-   1 httpd    httpd        161 May 27  1996 index.html

(ファイルのサイズや更新日時はヴァージョンによって異なることに 気をつけて下さい。このリストは Ver.1.7a の物です)

此処で、各ファイルの所有者が自分では無くサーヴァ(此処では httpd)に なっていることに気を付けて下さい。 そうなっているなら、あなたの使っているサーヴァは通常の環境です。

サーヴァによっては、 各ファイルの所有者がサーヴァでは無くユーザになっている所があります。 その場合、サーヴァは SetUID で動いている事になりますので、 各ファイルのパーミッションを変更する必要があります。 SetUIDサーヴァ環境でのディレクトリリストを 参照して変更して下さい。

3.2 セットアップ

インストールが済んだ「うぇぶ会議室」は環境に合わせたセットアップが必要です。 セットアップは大きく、環境設定ファイル site.pl の編集と それ以外のファイル修正に分けられます。

  1. site.plの設定 (必要)
  2. サーヴァの環境による変更 (時により必要)
  3. 見かけの統一
  4. 管理情報の設定

以上の項目について説明します。

3.2.1 site.plの設定

(この項は Ver.1.5a 時点での解説です。 Ver.1.6 以降、site.pl の設定は大幅に変更されていますが、 まだ、マニュアルは改訂されていません。詳細は 「うぇぶ会議室の部屋」を 参照のこと)

site.pl では、ペーヂ固有の情報を設定します。 カスタマイズできるのは以下の項目です。

$forumtitleの設定

$forumtitleには会議室の名称を書きます。 会議室の名称は「うぇぶ会議室」が生成する各ペーヂの Title に利用されます。 例えば、

$forumtitle = 'うぇぶ会議室';

の様に設定して下さい。 未定義の場合は 'WebForum' が使われます。

$forumrootの設定

$forumroot には「うぇぶ会議室」のディレクトリのURLを書きます。 ここなら、

$forumroot = '/%7Enir/Forum';

です。 この変数は必ず設定する必要があります。

$cgirootの設定

サーヴァによってはHTMLとCGIとを同じディレクトリに置けない場合があります。 (例えば、CERNサーヴァなど) その場合、$cgirootには、 CGIスクリプトを置いたディレクトリのURLを書きます。 CGIディレクトリには、 全部のスクリプト(.cgi.plで終わるもの) を置きます。 CGIが本体と同じディレクトリにある場合、 設定する必要は無いです。

$forumpathの設定

$forumpathには、 CGI実行時のカレントワーキングディレクトリ (NCSA型のサーヴァの場合、CGIスクリプトが置いてあるディレクトリが カレントワーキングディレクトリになります。 CERN型のサーヴァは違います)と 「うぇぶ会議室」本体とが違うディレクトリにある場合、 本体のディレクトリのパスを指定します。 パスは、カレントワーキングディレクトリからの 相対パスで指定することも出来ますが、 なるべくなら絶対パスで指定して下さい。 カレントワーキングディレクトリが「うぇぶ会議室」本体と同じ所の場合、 設定する必要は無いです。

CGIが本体と違うディレクトリにある場合の$forumroot$cgiroot$forumpathの関係をまとめると、 例えば、

           本体                           CGIスクリプト
PATH  /home/user/public_html/forum/  /home/user/public_html/cgi-bin/forum/
URL   /%7Euser/forum/                /%7Euser/cgi-bin/forum/

だった場合、 $forumroot$cgiroot$forumpathはそれぞれ、

$forumroot = '/%7Euser/forum';
$cgiroot = '/%7Euser/cgi-bin/forum';
$forumpath = '/home/user/public_html/forum';

になります。

CGI実行時のカレントワーキングディレクトリが、 CGIスクリプトと違う所にセットされている場合、 CGIスクリプトのディレクトリも設定する必要があります。 CGIディレクトリの位置設定の項を参照して下さい。

$ownerの設定

$ownerには、会議室管理者のメールアドレスを入れます。 例えば、

$owner = 'nir@mxa.meshnet.or.jp';

の様に。

$indentの設定

記事一覧が スレッドモードになっている場合に、 $indentでインデント深さ限界を設定します。 最大で 20 まで可能です。 未定義の場合は

$indent = '3';

になります。

$suppressの設定

$suppressを、

$suppress = 1;

の様に真に設定すると、 キャンセルされた記事が記事一覧に 表示されなくなります。 未定義、ないし、偽に設定されている時には、 キャンセル記事は表題を、 「**** 投稿者によりキャンセル」や 「**** システム管理者によりキャンセル」として表示されます。

$expiresの設定

$expiresには、 会議室選択や、 記事一覧の情報が無効になるまでの時間を 秒数で指定します。

通常、ブラウザは、 キャッシュに残っているペーヂはなるべく再ロードしない様にして、 トラフィックの軽減を計っているのですが、 「うぇぶ会議室」の様に、リアルタイムで内容が変わる可能性のあるペーヂは、 キャッシュのデータがいつまでも有効だと、新しい記事を得られないので、 適当な時間が経ったらキャッシュの内容を無効にして、 再びペーヂを読み込むようにさせます。 通常は 10分、

$expires = 10 * 60;

ぐらいでしょう。 未定義ですと 0秒を設定したのと同じで、 キャッシュが使われず毎回読み込まれることになりますので、 投稿頻度と相談して適当な時間を設定して下さい。

$newの設定

記事一覧で、新着記事は、 記事の前に付いているアイコンが、 通常の記事アイコン (*)の 代わりに、新着アイコン (!)に なっていますが、 $newには、この、記事が新着でいる時間を秒数で指定します。 例えば、

$new = 3 * 24 * 60 * 60;

とすれば、3日間は新着アイコンでいます。 記事の投稿頻度に合わせて設定して下さい。 未定義の場合には、新着アイコンにはなりません。

$articlesの設定

$articlesには、 記事一覧で、 1ペーヂに表示される記事の数を指定します。 ただし、キャンセルされた記事も数の中に入りますから、 $suppressを真にして キャンセル記事を非表示にしていた場合、 実際に表示される記事数は $articlesに指定した数よりも少なくなります。 通常は、

$articles = 30;

ぐらいが適当でしょう。 未定義時や 0 に設定された時は、 複数のペーヂに分けずに常に全ての記事を表示します。

$overlapの設定

$overlapは、 $articlesを設定して 複数ペーヂ表示を有効にしている時、 前後の一覧ペーヂに重複して入る記事数を指定します。

記事一覧が スレッドモードになっている時には、 多少重複して一覧が表示される方がスレッドを追いやすいです。 ただし、重複記事数は全体の記事数の半分は超えません。 例えば、

$overlap = 5;

として、5つぐらいの記事を重複させると良いでしょう。 未定義の場合は記事の重複はありません。

$htozの設定

$htozを、

$htoz = 1;

と真に設定すると、 いわゆる「半角カナ」文字を「全角カナ」文字に変換します。 ブラウザによっては「半角カナ」は扱わない様になっているものも多いので、 記事中に「半角カナ」を使う事は望ましくありません。 もし、「半角カナ」が入力されても、 $htozがセットされていれば変換してくれるので安心です。 未定義、または、0にセットされた時は変換は行ないません。

$copyの設定

サーヴァの種類によってはファイルのリンク処理が出来ないものもあります。 例えば、Windows-NT上のサーヴァでは通常出来ません。 その場合には、

$copy = 1;

として、リンク処理の代わりに、ファイルのコピーを使う様にして下さい。 未定義、あるいは、0にセットされた時はリンク処理を行ないます。

$bodyの設定

$bodyには、 省略時に使われる <BODY> タグを設定します。 記事の背景パターンや背景色、文字色などを設定するのに使って下さい。 例えばここの会議室では、

$body = '<BODY BACKGROUND="/%7Enir/icons/back/bg1.gif" BGCOLOR="#FFFFF8">';

としています。 未定義の場合は、

$body = '<BODY>';

が設定されたとして扱います。

$footの設定

$footには、 ペーヂの最後に加えるものを設定します。 $footに設定する内容が長い場合には、 perlの "here document" の機能を使うと書きやすいでしょう。 例えばここの会議室では、

$foot = <<'EOL';
<HR>
<A HREF="/%7Enir/" TARGET="_top"><IMG
SRC="/%7Enir/icons/arrow/m_top.gif"
ALT="・" ALIGN="top" BORDER="0"
WIDTH="20" HEIGHT="20">
ホームペーヂに戻る</A>
EOL

として、 ホームペーヂに戻るボタンを置いています。 リンクを張る時には、この例の様に、 TARGET="_top" として、フレーム解除するのを忘れないで下さい。 TARGETを忘れると 同じフレームの中にリンク先のペーヂが表示されることになります。 未定義の場合には何も加えられません。 $footの設定の如何にかかわらず、 システム管理者のメールアドレスと最終修正日時は表示されます。

@emphasisの設定

@emphasisは、 会議室選択ペーヂで新着記事がある時の日付表示を 強調するのに使われます。

@emphasis = ('強調始め', '強調終わり');

と指定すると、 日付欄が、'強調始め''強調終わり'とで囲んで表示されます。 例えば、

@emphasis = ('<FONT COLOR="#DD0000">', '</FONT>');

と指定すると、 新着がある部屋の日付は 紅く 表示されることになります。 未定義時は、

@emphasis = ('<EM>', '</EM>');

と指定されたものとして扱います。

@titleの設定

@titleには、 会議室のディレクトリ名とタイトルを書きます。 例えば、ここの会議室は、

@title = (
        'mesh.npc',     'npc.cgiの部屋',
        'mesh.forum',   'うぇぶ会議室の部屋',
        'mesh.program', 'プログラム質問箱',
        'mesh.open',    '何でも掲示板',
        'mesh.test',    'Testの部屋',
);

と言う5つの部屋を設けています。 「うぇぶ会議室」に入ったときには、 最初に書いてある部屋が選択された状態になります。

%helpの設定

%helpには、 会議室のあちこちで参照されるヘルプペーヂを指定します。 指定方法は、

%help = (
        'cookies', 'http://www2.meshnet.or.jp/%%7Enir/forum/faq.html#%s',
        'escape',  'http://www2.meshnet.or.jp/%%7Enir/forum/faq.html#%s',
        '',        'http://www2.meshnet.or.jp/%%7Enir/forum/usage.html#%s',
);

の様に、 キーワードとそのキーワードのためのヘルプペーヂURLとの組で指定します。 ヘルプペーヂURLの中では "%s" でキーワードを参照することが出来ます。 キーワードの部分が空白のヘルプペーヂは キーワードが指定されたものにマッチしない時の省略時のペーヂとして使われます。 マッチするキーワードが無く、かつ、空白キーワードも指定されていない時は、 ヘルプアイコンは設定されません。

キーワードには、 menucontentsarticlepostcancelcookiesescapeerror がありますが、 将来増えるかも知れないため、ご自分でヘルプペーヂを用意する場合でも、 省略時ペーヂは、ここのオンラインマニュアルのままにして置いた方が 良いかも知れません。

3.2.2 サーヴァの環境による変更

perlコマンドの位置設定

名前が.cgiで終わるスクリプトの1行目には、

#!/usr/local/bin/perl

と、perlコマンドの位置が指定してあります。 サーヴァによっては、 上記の位置とは違う所に perl がインストールされている事もありますので、 正しく perl コマンドの位置を指定するように修正して下さい。 perl コマンドの位置はお使いのサーヴァ管理者にお問い合わせ下さい。 「うぇぶ会議室」のスクリプトは、 perl5 (Ver.5.x の perl) でも perl4 (Ver.4.x の perl) でも 動作するようになっていますから、 サーヴァで提供している perl に合わせて適切な名前を設定して下さい。

CGIディレクトリの位置設定

サーヴァによっては、CGI実行時のカレントワーキングディレクトリが、 CGIスクリプトがあるディレクトリと別の所になっている場合があります。 例えば、代表的なサーヴァでは、CERN HTTPd がそうです。 そのようなサーヴァでは別ファイルにある共用関数群に正しくアクセスするために、 スクリプト中にCGIディレクトリの位置を設定する必要があります。

.cgiで終わるスクリプトの最初には、

$CGIPATH = '.';

と、CGIディレクトリを設定している箇所がありますから、 これを、フルパスで、

$CGIPATH = '/home/user/public_html/cgi-bin/forum';

の様に指定し直して下さい。

3.2.3 見かけの統一

Preface.htmlindex.cgiのメッセーヂ修正

Preface.htmlはうぇぶ会議室に入った時に、 記事本文フレームに表示されるメッセーヂです。 会議室の紹介等を書いておくと良いでしょう。 また、<FRAME>が扱えないブラウザの場合は、 index.cgiの中に会議室の紹介を記述することになります。 双方に同様のメッセーヂを入れることもできますし、 <FRAME>を扱える場合とそうでない場合とで、 メッセーヂを分ける事も出来るでしょう。

会議室ごとのindex.htmlメッセーヂ修正

各会議室の中にあるindex.htmlは それぞれの会議室を選択した時に最初に表示されます。 会議室の用途などを書いておくと良いでしょう。

HTMLファイルの<BODY>タグ変更

Preface.html、各会議室の中にあるindex.htmlCancelPoster.htmlCancelSystem.html等の 文書の<BODY>タグを、 site.pl$body設定で用いたものと一致させておくと、 見かけの統一がとれて良いと思います。

3.2.4 管理情報の設定

システム管理者のキャンセルコード設定

それぞれの会議室ディレクトリの中には、 投稿された記事の属性を記憶しているcontentsと言うファイルがあります。 このファイルの 1 行目には、 最初の記事番号と次に生成される記事番号、 システム管理者のキャンセルコードを暗号化したものが記憶されています。

配布ファイルの中では、 これから設定するシステム管理者のキャンセルコードは分からないので、 暗号化列の所は、'*'の並びで潰してあります。 システム管理者は、 この「システム管理者キャンセルコード」を設定しなければならないのですが、 UNIX が使えない環境では暗号化(crypt)の処理は簡単には出来ないでしょうから、 「うぇぶ会議室」自身の暗号化ルーティンを利用して行ないます。

ここまでのセットアップの作業で、 既に投稿可能になっていると思いますので、 まず、「testの部屋」等で試験投稿します。 そして、投稿後に与えられたキャンセルコードを変更するか?と聞かれた時に、 「システム管理者キャンセルコード」として設定したいコードを入力します。 すると、今入力された「システム管理者キャンセルコード」を暗号化したものが、 最初の記事の行に設定されますから、 その暗号化文字列を最初の行に設定し直せば完了です。

例えば、 「投稿試験です」と言う記事を投稿した後のcontentsファイルは、

00001 00002 *************
00001 00000 E1pld5iSF65rs 1996/05/15 08:57:18 <にあ> 投稿試験です

の様になっていると思いますので、 この「E1pld5iSF65rs」の部分を、 最初の行の'*'で潰してある部分に上書きすれば良いです。 配布ファイルの暗号化列はDES暗号化で使われる13文字になっていますが、 システムによってはMD5等を使っていて暗号化列の長さが違うものもありますが、 試験記事の暗号化列に従って、 1行目の「システム管理者キャンセルコード」暗号化列の長さも変更して下さい。


4. トラブルシューティング

4.1 エラーメッセーヂ


4.2 FAQ (良くある質問と答え)

ここには「うぇぶ会議室」について良く質問される項目と その答えをまとめてあります。 此処に書いていない事やマニュアルを読んでも 良く分からない事がありましたら、「うぇぶ会議室」の 「うぇぶ会議室の部屋3」 辺りでお聞き下さい。適宜追加します。

個人情報の自動補完

Q. 記事投稿の時、名前やメールアドレスの欄が自動的に埋められているのですが?

A. 「うぇぶ会議室」では HTTP Cookiesの機能を利用して、 以前に投稿した時の、

をブラウザに覚えさせています。 また、投稿時にキャンセルコードを変更すると、 その変更した後の

も覚えさせています。 ブラウザが次の投稿時までこれらの情報を覚えていれば自動的に補完されます。

この個人情報の自動補完は、 パソコンを専有して使っている場合には非常に便利な機能ですが、 計算機室の共用パソコンとかインターネットカフェとか、 不特定多数が使う環境では無意味であるばかりか、 ブラウザに個人情報が残ってしまって危険でもあるので、 投稿時に「ブラウザに個人情報を覚えさせない」 あるいは「ブラウザにキャンセルコードを覚えさせない」のチェックボックスを選んで、 個人情報を残さない様にして下さい。

特殊記号のエスケープ

Q. 記事中で "<" や ">" などの文字が 上手く表示されないんですけど?

A. 「うぇぶ会議室」では HTMLタグの使用を許していますので、 記事からリンクを張ったり、画像を張り付けたり出来るわけですが、 逆に HTML タグで利用する以下の文字はエスケープが必要です。

ただし、プログラムや HTML自身など、 これらの記号が多く現われる記事を書く時に、 いちいち手でエスケープしていると大変なので、 記事の投稿時には 「HTMLを解釈せずにそのまま表示する」と言う チェックボックスを設けました。 本文中に特殊記号が多い時にはこれを使うと楽でしょう。 すべてのHTMLタグの無効化が行なわれます。

また、記事の引用の時、 元記事にこれらの記号がエスケープされて入っていると、 自分が「解釈しない」モードで出そうと思っても、 元記事の部分がエスケープされたまま出てしまうので、 「エスケープせずにそのまま引用」する リンクを使って下さい。 なお、このリンクは引用記事にエスケープされた記号が 入っている時にのみ現われます。

有効秒数の設定

Q. 投稿しても記事一覧に新しい記事が現われないことがあるんですが?

A. 「うぇぶ会議室」のスクリプトは 各ペーヂの出力時に最終更新時間(Last-Modified)を 設定することにより、 ブラウザやプロクシサーヴァなどの キャッシュ機能を有効にして 不要なリロードを避ける様になっています。

しかし、いつまでもキャッシュが有効になっていると 新しい投稿があっても分からないので、 ペーヂの内容が古くなって無効になる時間(Expires)も 同時に設定しています。

もしも、以前に記事一覧を読み込んでから投稿が完了するまでの時間が 無効になるまでの秒数 (site.pl$expiresと言う 変数に設定してあります) より短いと、 投稿完了後の記事一覧の読み込みでキャッシュにある古い情報を読んでしまい、 あたかも新規記事が上手く投稿されていないかのごとく見えることがあります。

そう言う時には、記事一覧のフレームをリロードすると 新しい記事が投稿されているのが確かめられます。 もしも気になるようでしたら、通常600秒に設定されている、

$expires = 10 * 60;             # 会議室選択/一覧ペーヂの有効秒数

の秒数を短くすれば投稿の後キャッシュを読むことは少なくなります。 ただし、あまり短くしてしまうとキャッシュを有効にした意味が 無くなってしまいますから程々にして下さい。

Unsafe文字の使用

Q. ユーザカスタマイズしても、フレームの分割比等を憶えてくれないんですけど?

A. 会議室のあるペーヂのURLに本来使ってはいけない Unsafeな文字、 例えば "~"(tilde) 等を使ってはいませんか? ブラウザによってはこの様なUnsafeな文字を使うと色々と不都合が起きますので、 "~" は "%7E" 等と表わして、Unsafeな文字は使わない方が無難です。

「うぇぶ会議室」のスクリプトでは、 HTTP Cookiesの 機能を使ってカスタマイズ情報を憶えていますが、 ブラウザの "~" 文字の扱いが文脈によって "~" だったり "%7E" だったりと 一定していない場合、片方で憶えたことがもう片方で使えない事になり カスタマイズが部分的にしか有効になりません。 統一的に "%7E" を使う様にしましょう。

現行ヴァージョン(Ver.1.7a)で site.pl%help 項目で "~" の代わりに "%7E" を使うと forum.plのバグが顕在化します。 「最新β版及びパッチ」のペーヂを参照して下さい。

拡張子の補完不全

Q. tar+gzのアーカイヴをダウンロードして 展開したらエラーになりました。

A. Windows上の一部のブラウザで *.tar.gzと言うような アーカイヴをダウンロードすると、 ファイル名が *_tar.tar などに変えられてしまうことがあります。 これをそのまま WinZIP の様に *.tar.gz なアーカイヴを 展開できるソフトに与えても、単なる tar アーカイヴだと思って処理してしまい エラーになってしまいます。

そのような時は、ファイル名を正常なもの(*.tar.gz)に 戻してやってからソフトに与えれば正常に展開できます。

拡張子の補完不全が起こるのは、*.tar.gz なアーカイヴが

Content-Type: application/x-tar
Content-Encoding: x-gzip

と言うレスポンスヘッダと共に送られてくるのに、 Content-Typeだけ処理して、 Content-Encodingを正常に処理出来ていないためだと思われます。

flock関数利用不能

Q. 記事を投稿しようとするとサーヴァエラーになるんですけど?

A. 「うぇぶ会議室」では同時に複数の投稿が起きない様に ファイルのロック処理をしていますが、 サーヴァのOSの種類によっては、 このロック処理に使用するflock()と言う関数を 持たない物があります。

もしも、他の動作は問題無いのに記事の投稿時にサーヴァエラーになるようなら、 flock()が使えない事が考えられます。

OSの機能としてflock()が使えない場合でも、 perl5 (5.x版のperl) なら、OSが持っている他のファイルロックの機構で flock()をエミュレーションして 擬似的にflock()を使えるようにしている場合がありますので、 まず、perl5 が利用できるかどうか試して下さい。

perl5が利用できない場合には仕方がありませんので、 「うぇぶ会議室」でflock()を使わない様に設定できます。 site.pl$flock_disableflock()の無効化が 設定出来ます。

$flock_disable = 1;

とすると、flock()を使わなくなります。 もちろん flock()を使わない設定にすると、 同時投稿時に誤動作する可能性があることにも留意して下さい。

jperlの利用

Q. 記事一覧の行末が化けてしまうんですけど?

A. 記事一覧の行末が化けるのは、perlの代わりにjperlを使っている時に 起きる典型的な症状です。 「うぇぶ会議室」は基本的にjperlでの実行を保証していません。 通常のperlを使って下さい。

ただし、jperlのヴァージョンが5.x以降の場合には、 スクリプトの1行目のperlコマンドの位置指定に対して、

#!/usr/local/bin/perl -b

の様に、-b オプションを付けることにより、 perl互換モードで動かすことが可能です。 もちろん「うぇぶ会議室」はjperlのperl互換モードの元でなら 正常に動作しますので、もしもサーヴァにインストールされているのが jperlだけの場合はperl互換モードを使って下さい。


5. 拡張機能

5.1 拡張機能とは?

「うぇぶ会議室」の本体機能のみでは不足している所を 本体のスクリプト群に付加する事で補ってくれるスクリプトの事を 「拡張機能」と称しています。 Plug-inとかAdd-inとか呼ばれる物と同様なものです。

「うぇぶ会議室」では site.plの設定をするだけで、 本体のスクリプトを修正すること無しに簡単に拡張機能が追加出来ます。 さらに、登録された拡張機能は ユーザカスタマイズ機能を使って 取捨選択出来るため、 ユーザは自分の利用する拡張機能だけを表示させることが出来ます。 このため、たとえ多数の重複する機能が登録されていたとしても 画面がゴチャゴチャして見づらくなることが避けられますので、 遠慮無く色々な拡張機能をインストールすることが出来ます。

5.2 拡張機能ライブラリ

此処では、現在までに開発されている拡張機能を紹介します。 開発順にリストすると、

  1. 記事一括表示拡張機能 (archive-ex、NKさん作)
  2. 未読記事表示拡張機能 (unread-ex、NKさん作)
  3. 投稿者集計拡張機能 (post_summary、TADさん作)
  4. 名前指定記事参照拡張機能 (ref_byname、TADさん作)
  5. 簡易記事検索拡張機能 (recent-ex、にあ作)

があります。

5.2.1 記事一括表示拡張機能 (archive-ex)

NKさん作の記事一括表示拡張機能です。 NKさんのWebForum Extensionの中の 記事一括表示拡張機能のペーヂで ダウンロード出来ます。詳細な解説もあります。

指定された範囲の記事を連結し一括表示します。 「うぇぶ会議室」では、一つ一つの記事は独立した HTMLファイルになっていて、 記事一覧からそれぞれの記事を選んで読み進めるようになっていますが、 常時Internet接続をしていない環境で一つ一つの記事を読み進めるのは 無駄に接続時間が伸びてしまい望ましくありません。 そのような時に記事一括表示を行なえば、 接続を切った後にゆっくりと記事を読み進める事が出来ます。 また、旧来の掲示板タイプの look & feel がお好きな方にもお勧めです。

5.2.2 未読記事表示拡張機能 (unread-ex)

NKさん作の未読記事表示拡張機能です。 NKさんのWebForum Extensionの中の 未読記事表示拡張機能のペーヂで ダウンロード出来ます。詳細な解説もあります。

指定された会議室の未読記事を連結し一括表示します。 「うぇぶ会議室」で独立した HTMLファイルになっている記事を読んでいる場合には ブラウザのヒストリ機能で未読管理が出来ますが、 一括読みの場合にはそれが出来ません。 未読記事表示拡張機能を使えば、 会議室ごとに HTTP Cookie 機能を用いて未読ポインタを設定出来るので、 パソコン通信に於ける未読読みと同じ様な感覚で 「うぇぶ会議室」の記事を読むことが出来ます。

5.2.3 投稿者集計拡張機能 (post_summary)

TADさん作の投稿者集計機能です。 TADさんの「うぇぶ会議室」拡張機能の中の 投稿者集計機能のペーヂで ダウンロード出来ます。詳細な解説もあります。

「うぇぶ会議室」への投稿者の名前と投稿数を集計、表示します。 会議室を閑古鳥の住みかにしないための秘訣は、 やはり何度でも来たいと思わせる魅力を作ることですが、 投稿数のランキングを出すと言うのは、 そう言う小道具の一つとなるのでは無いでしょうか? また、月ごとの投稿者/投稿数の管理などにも有効です。

同じTADさんの名前指定記事参照機能と 組み合わせて、 集計表示された投稿者の記事一覧を表示することが出来ます。

5.2.4 名前指定記事参照拡張機能 (ref_byname)

TADさん作の名前指定記事参照機能です。 TADさんの「うぇぶ会議室」拡張機能の中の 名前指定記事参照機能のペーヂで ダウンロード出来ます。詳細な解説もあります。

「うぇぶ会議室」において、 指定された名前の投稿者が投稿した記事の一覧を表示します。 記事を探したい時に、誰が投稿した物か憶えていれば、 名前指定記事参照をする事によって探すのが容易になります。 また、自分が以前に訪れた時、どんな記事を書いたのか確認することが出来ます。 一覧表示からは当該記事を含むスレッド全体を表示することが出来ますので、 全体の議論の流れを追うことが出来ます。

5.2.5 簡易記事検索拡張機能 (recent-ex)

記事本文の検索をしない簡易記事検索拡張機能です。 此処にある「うぇぶ会議室」拡張機能の中の 簡易記事検索拡張機能のペーヂで ダウンロード出来ます。詳細な解説はそちらです。 名前が recent-ex なのは 最近の投稿一覧を改造して 簡易記事検索機能を付けた事の名残です。

「うぇぶ会議室」では、まだ本格的な全文検索機能が提供されていませんので、 会議室の目次ファイルに記録されている、 表題、日時などのヘッダ情報のみから記事を検索し一覧表示する 簡便な検索機能を用意しました。 全文検索機能が出来るまでの繋ぎとしてお使い下さい。 一覧表示からは当該記事を含むスレッド全体を表示することが出来ますので、 全体の議論の流れを追うことが出来ます。

5.3 拡張機能の作り方


6. 付録

6.1 著作権等

当スクリプトはフリーソフトとします。 配布アーカイヴに含まれる物のうち、 当スクリプトに属するすべてのソースファイル、 及び、付属文書の著作権は作者が保持します。 作者が著作権を持つ部分については、 ユーザが当スクリプトを修正して運用/再配布したり、 他のスクリプトに再利用する行為を妨げませんが、 変更したものを再配布する場合は、 オリヂナルとの相違点を明確にして下さい。 また、利用に関しては無制限にこれを認めます。 上記許可事項に関して個別に作者に許可を求めることは不要です。

6.2 免責

当スクリプトの配布にあたっては、その有用性、安全性等に関する いかなる保証も行ないません。当スクリプトの使用に際して生じた いかなる損害に対しても、作者は責任を負いません。 また、当スクリプトに明らかな不具合、仕様上の不備等が見つかった 場合に於いても、作者はそれを修正する責を負いません。

6.3 作成履歴

Ver1.7c -- 1999年1月15日
Ver1.7bに同梱してあった歌代さんのjcode.plのtrの部分に バグがあったそうなので、jcode.plだけを差し替えたものを Ver1.7cとして置いた。本体には変更は無い。
Ver1.7b -- 1998年12月26日
Ver1.7aにセキュリティ上の問題点が見つかったために 図らずもVer1.7bを出すことになった。 しかし、Ver1.6a以来今まで2年間も見つからなかったとは... (^^;;
Ver1.7a -- 1997年3月10日
Ver1.7でキャンセル記事へのリンクを ハードリンクからシンボリックリンクに変えたのだが、 この処理に誤りがあったため修正した。 (^^;;
Ver1.7 -- 1997年3月7日
リードオンリー会議室の設定が出来るようになった。 CGIスクリプトの拡張子を設定出来る様になった。 最初に表示するペーヂを設定出来る様になった。
Ver1.6b -- 1997年1月30日
WinNTサーヴァのように、サーヴァの返す時間帯が狂っている場合でも 更新時間や有効時間が狂わないようにした。 記事一覧で使っている再帰呼び出しの段数を減らして、 メモリの使用量を減らした。
Ver1.6a -- 1996年12月22日
ユーザカスタマイズ機能が付いた。 HTTP Cookies にユーザサイドでのカスタマイズ情報を貯めて、 会議室の見かけの変更や拡張機能の選択などを 自由に行なえるようにした。 変更できる見かけ情報は、 記事の配列順やフレームの分割方向/割合、 記事一覧書式など、いちいちあげないが多岐に渡る。 長い記事を投稿する時の処理時間を短縮した。 サーヴァ名が正常に設定されていない場合への対処をした。
Ver1.5a -- 1996年10月22日
以前より懸案だったCERN型のサーヴァに対応した。 改行記号の扱いが正常になった。 ヘルプでここのオンラインマニュアルを参照するようになった。 新しい記事に新着マークが付く様になった、などなど、 他にも沢山改良/修正点がある。 また、歌代さんのjcode.plが、 ヴァージョンアップに伴っていわゆる「半角カナ」を「全角カナ」に 変換できるようになったので、 その機能も選択できるようにした。
Ver1.4a -- 1996年10月1日
V1.4でperl4対応したはずだったのに、 新たに導入した部分でperl4非対応が見つかってしまったため、 perl4対応版を急遽出した。 (^^;;
Ver1.4 -- 1996年9月28日
スレッドモードと日付順モードを切り替える事が出来るようになった。 HTMLでの特殊文字を自動クォートする選択項目が出来た。 Ver1.3以降で見つかったバグを取った。
Ver1.3 -- 1996年7月7日
入力されたメイルアドレス等の個人情報を HTTP-Cookies 機能を使って ブラウザ側に保存しておくようにした。 これで毎回同じ事を入力することが省ける。 (^^) あと、以前にまじんさんから報告のあったバグと、 再編集時の漢字変換を忘れていたバグを取った。
Ver1.2a -- 1996年6月14日
布施さんから報告のあった、 エラー関数の呼び出しの部分で "&" が抜けているバグをとった。
Ver1.2 -- 1996年6月6日
記事がある程度以上たまると、一覧表示が複数ペーヂになるようにした。 また、会議室選択のウィンドゥで、 ブラウザが記憶しているキャッシュの情報より 新しい記事がある場合、日付欄が強調表示になる様にした。
Ver1.1 -- 1996年5月31日
記事のプレヴュー画面から再編集モードに入るためのボタンを増やした。 削除した記事を一覧に出さないための設定項目と、 記事一覧のインデント限界を変更するための設定項目を増やした。 記事引用時のエスケープ処理が甘かったのを直した。 あと、記事一覧の中に会議室選択のアイコンを増やした。
Ver1.0 -- 1996年5月27日
ユーザ設定の部分をsite.plと言うファイルに追い込んで、 カスタマイズが簡単に出来るようになったので一般公開した。 スクリプトにはロングファイル名を使っているのだが、 MS-DOS環境の人でも容易にインストール出来る様に、 自己解凍CGI形式を用意した。
β-version -- 1996年5月15日
npc.cgiのサポート用に local NetNewsまがいの場所を確保しようと言うことで、 ここに「うぇぶ会議室」を開設した。 βヴァージョンなので、ユーザ設定部分が スクリプトのあちこちにばらまかれていて、 一般公開するためにはまだまだ手を入れる必要がある。

6.4 これからの予定

6.5 最新β版及びパッチ

このペーヂでは、リリース版に含まれていない最新のβ版や、 リリース版のバグパッチ等を提供します。 通常これらのβ版やパッチ版は、次回リリースで併合されます。

現行版(Ver.1.7c)へのパッチ

これらのパッチは、まだ現行版には含まれていません。 個別にパッチすることが必要です。

article.cgiのパッチ版 (v1.14.1.3)
会議室への投稿フォーム毎に個別の認証キーを設定し、 その認証キーが合わないと投稿を受理しません。 これによって、不正投稿を防ぐことが出来ます。 また、データベース登録機構を有効にすると、 同じ認証キーの記事についても拒否出来ます。 これによって重複投稿を防ぐことが出来ます。
forum.plのパッチ版 (v1.18.1.4)
不正/重複投稿拒否機構を使う場合に必要となる関数が増えています。 また、2000年問題に対するパッチも当ててあります。

旧版(Ver.1.7a)へのパッチ

旧版に以下のパッチを当てた物が、現行版となっています。

article.cgiのパッチ版 (v1.14.1.2)
Ver.1.7aまでの「うぇぶ会議室」に含まれる article.cgiでは、題名や名前に改行コードが混じると 誤動作しますので、この article.cgiに差し替えて下さい。
contents.cgiのパッチ版 (v1.22.1.2)
Ver.1.7aまでの「うぇぶ会議室」に含まれる contents.cgiには、セキュリティ上の問題点が 見つかっていますので、早急にこの contents.cgiに 差し替えて下さい。
forum.plのパッチ版 (v1.18.1.3)
Ver.1.7aまでの「うぇぶ会議室」に含まれるforum.plでは %helpの URL 指定に '%' を使用すると誤動作します。 また、セキュリティ上の問題点が見つかっていますので、 早急にこの forum.plに差し替えて下さい。
Mac専用パッチ版 (v0.1)
Mac Perlは Unix版perlやWin32版perlに比べると癖が強いため、 スクリプト本体に手を入れないと正常動作しません。 これは、私がVer.1.7aの「うぇぶ会議室」スクリプトを Mac Perl用にポートしCGIアプリケーションとして再アーカイブした物です。 また、Mac Perlに付いていたtimelocal.plの動作がおかしかったため、 正常に動く様にパッチして同梱してあります。 Mac版はまだVer.1.7a相当なので、さらに上記セキュリティパッチが 必要になります。お気をつけ下さい。

7. 索引

【 $ 】
【 % 】
【 @ 】
【 C 】
【 F 】
【 H 】
【 J 】
【 P 】
【 S 】
【 T 】
【 U 】
【ア行】
【カ行】
【サ行】
【タ行】
【ナ行】
【ハ行】
【マ行】
【ヤ行】

・ にあのホームペーヂに戻る
nir@mxa.meshnet.or.jp
$Date: 1999/12/23 12:56:00 $