Free CGI
KGBanこと軽爺盤すなわち掲示板、いわゆる「BBS」です。
CGIを利用できるサーバーであることが必要です。
- 機能
- 主な機能
- タグ。投稿記事には文字修飾タグ(<FONT><B><I>)が使えます。
- リンク。投稿記事中の
http://
またはftp://
で始まる文字列は自動的にリンクされます。
- ワード検索。過去の記事から複数のキーワード、投稿者、日付を指定して検索できます。
- 削除キー。投稿時に削除キーを入力しておけば、投稿した記事の削除ができます。
管理者はマスターキーで、どの記事も削除できます。
- アイコン。管理者が登録したアイコンを投稿時に選択して使えます。
管理者のみが使えるマスターアイコンも登録できます。
- カウンター。管理者が好きな位置に表示形式を指定して設置できます。
- クッキー。クッキーをオンにしておくと、投稿者のブラウザに名前、URL、メールアドレス、削除キーが記憶され、次の投稿時にフォームに表示されます。
- 日記。リードオンリーをオンにしておくと、管理者のみが書込める日記として使うことができます。
管理者はマスターキーで投稿フォームを呼び出すことができます。このフォームで記事の削除や校正を行うことが出来ます。掲示板のカスタマイズメニューもこのフォームから呼び出します。 ▽Q&A
- 返信。弐号(Ver2.00以上)のみの機能。
投稿された記事に対して返信記事を投稿することができます。
返信記事は投稿順に元記事の下に付き、元記事は上には上がりません。
元記事投稿後、返信できる日数を設定することができます。 ▽Q&A
- マルチボード
- CGIスクリプト1ファイルで複数の掲示板を設置して、それぞれにカスタマイズすることができます。
- 設置例
実運用中 シンプルなカスタマイズ。
実運用中 リードオンリー = 日記形式
実運用中 配色違い、アイコン使用、返信機能利用。
- カスタマイズ
- セキュリティ
- 削除キーは暗号化されてログに登録されますので、管理者にも投稿者の暗号はわかりません。
- 続けて同じアドレスで同じコメントの投稿は二重投稿として拒否されます。
- その他。後述の「利用方法」をお読みください。
- 更新履歴
- 2002/08/20
- Ver.1.30/2.30目次を表示する機能を追加。
- 2000/11/24
- Ver.1.22/2.22フレーム形式で利用するために、リンクのターゲットを指定する機能を追加。
- 2000/10/30
- Ver.1.21/2.21V2にも日記モードを追加。日記モードに「校正機能」を追加。
- 2000/06/10
- Ver.2.01。「返信」した後の表示のバグを修正。
- 2000/06/02
- Ver.2.00。Ver.1.10に「返信」機能を追加。
- 2000/05/28
- Ver.1.10。日記用にリードオンリーの動作を修正。
- 2000/01/30
- Ver.1.02。細かなバグを修正。マネージャーにヘルプを追加。
- 2000/01/26
- Ver.1.01。アイコン一覧の列数を変更を可能にする。
自動リンクのバグ修正&mailto:も自動リンク対象に。
ログ書込み時にテンポラリファイルが残っていたら名前を変えて保存するようにし安全性を高める。
- 2000/01/24
- マネージャーで罫線オフを設定しても反映しないバグを修正。VERは1.0のまま。
- 2000/01/23
- ワード検索機能、KGBanマネージャーを付加し第1版として公開。
- 2000/01/15
- 作者のWEBの吸血鬼企画掲示板を当CGIに変更して公開。
- 利用方法
- ダウンロード
- セットファイルをダウンロードします。 → tskgban.lzh
- ダウンロードしたファイルを解凍すると下記のファイルが生成します。
- tskgban1.cgi 掲示板スクリプト 705
- tskgban2.cgi 掲示板スクリプト(返信機能付き) 705
- tskgbanm.cgi 掲示板マネージャースクリプト 705
- jcode.pl 2バイトコード変換用ライブラリ 604
- tskgban.html このHTMLのコピー
- readme.txt 読まなきゃファイル
右側の数字はUNIXサーバー上で設定するパーミッションの値です。
ダウンロードしたらreadme.txtはちゃんと読みましょう(笑)
- スクリプトの選択
- 返信機能を使わない人は tskgban1.cgi を、
使う人は tskgban2.cgi を選んでください。
- tskgban2.cgi を選んだ場合、以下の説明の tskgban1.cgi は tskgban2.cgi に読み替えてください。
- 2 は 1 の機能を全て含んでいます。
返信機能をオフにすることもできますので、2 だけで運用しても支障はありません。もしCGIの動作が遅いと感じた場合、1に変えて見てください。
- スクリプトの変更
- tskgbanm.cgiの1行目の「
#!/usr/local/bin/perl
」をサーバーの設定にあわせて変更してください。通常はこのままで大丈夫です。
このファイルの変更はこれで終わりです。
- tskgban1.cgiの1行目も同様に変更してください。
- [A]データ用デレクトリ
tskgban1.cgiの10行目$DataDir = 'data/';
の太字部分を変更してください。
- [B]管理者用パスワード
tskgban1.cgiの12行目$MasterKey = 'master/';
の太字部分を変更してください。
- 上記2ヶ所の変更はセキュリティ上必ず行ってください。そのままだと他人にログをいたずらされる原因にもなります。
- サーバーに送信
- 設置&テスト
- 設置したいボード名を決めます。仮に「bbs」とします。
- ブラウザを立ち上げ、次のような形式でURLを呼び出します。
http://www.userurl/cgi-bin
/tskgban1.cgi?board=bbs
投稿フォームが表示されたら成功です。
- 削除キーに[B]管理者用パスワード(マスターキー)を入力して投稿すると、ログファイルが生成され、設置は完了です。
1件目はマスターキー以外では投稿できません。
- カスタマイズ項目の設定
- 掲示板下部の管理者メニューボタンをクリックして(マスターキー入力を忘れずに)掲示板マネージャーのカスタマイズメニューを表示して、お好きなように変更しまくってください。
変更を実行ボタンをクリックして思ったように表示されたら成功です。
- ログ
- ログは[A]データ用デレクトリに
bbs.log
(bbbというボード名の場合)という名前で保存されます。適宜ダウンロードして保存してください。
- 超過分ログ保存をオンにしてある場合最大保存件数を越したデータは
bbs.dat
という名前で保存されます。適宜ダウンロードして保存してください。
超過分ログは通常ログと逆に日付順昇順で保存されています。
- トラブルシューティング
- うまく動かない(掲示板が表示されない場合)次の点を確認してください
- サーバーでCGI、SSIが使えますか?特定のコマンド(
flock()
など)は使えますか?
- 呼び出しパスは正しいですか。
- パーミッションは正しく設定されていますか。
- ファイル名とファイルを置いたディレクトリは合っていますか?。
- 日記モード
- 掲示板を日記のように使うには
- カスタマイズメニューの投稿モードで「投稿不可(日記モード)」を選択してください。
- 記事を投稿するには
- 管理者メニューボタンをクリック(マスターキー入力を忘れずに)すると投稿フォームが表示されますので投稿してください。
- 記事の削除もできます。
- 投稿(削除)すると投稿フォームのない表示にもどります。
- カスタマイズメニューを表示するには
- 投稿フォームを表示した状態で管理者メニューボタンをクリック(マスターキー入力を忘れずに)します。
- 「投稿不可」と「投稿不可(日記モード)」の共通の特徴は
- 管理者がマスターキーで投稿する場合
- 氏名が空欄でも投稿を受け付けます。
- すべてのタグを許可します。
- URLやメールアドレスの自動リンクはしませんので、投稿者が記述してください。
- 「投稿不可」と「投稿不可(日記モード)」の違いは
- 「投稿不可(日記モード)」の場合、タイトル行が表示されません。
- タイトルに入力された文字はコメント欄の1行目に太字で表示されます。
- 返信機能
- 記事に返信できるようにするには
- カスタマイズメニューの返信可欄に1以上の数字を入力してください。
- 入力した数字は返信可能日数です。
現在から日数分過去の記事まで返信ボタンが表示されます。
- 返信するには
- 返信ボタンをクリックすると返信専用のフォームが表示されます。
- 投稿すると、元記事の下に(既に返信がある場合その下に)投稿した記事がインデントされて表示されます。
- 元記事を削除すると返信記事は?
- 返信記事がぶらさがっている元記事を削除すると、返信記事が迷子になってしまいます。
- そうならないよう、元記事が削除された位置に「元記事は削除されました」という記事が挿入されます。
- 返信記事は自動では削除されません。
- ログ破損時のバックアップ機能
- ログの保全には十分に配慮していますが、書込み時のサーバートラブルなどでログが消えたりする可能性はゼロではありません。(これはどんな掲示板でも同じです。)
当スクリプトではログ書込み時(投稿、削除)には一度全ログデータをテンポラリファイルに書込んで、書込みが成功した時点でログファイルに名前を変えるという比較的安全な方法をとっています。
万が一ログが破損した場合、次回の書込み時にテンポラリファイルが残っていれば(正常に書込まれれば消されています)、CGIはテンポラリファイルをボード名+'.tm1'という名前で保存します。もしその名前のファイルもあったら、そのファイルの名前の「tm1」を「tm2」に変えて保存します。
ですから、もしもログが消えるなどしたら、データディレクトリの中のファイル名の末尾(拡張子)が「tmp」「tm1」「tm2」のファイルをさがしてダウンロードしてください。
中身をエディターなどで確認の上、拡張子を「log」に変えてアップロードしてください。
テンポラリファイルの作成された時点までは元にもどすことができます。
Free CGI