CGIによる原始的な電子掲示版

本書のここまでの説明を理解されたなら、 CGIで掲示版を作る方法はもうだいたい予想がつくでしょう。 それでも参考のために原始的な電子掲示版のCGIの作り方を紹介しておきます。


● CGI掲示版を作る前に考えておくこと

■ 投稿記事の保存の方法

記事をひとつづつ、ファイルに保存するので良いでしょう。 専用のディレクトリに通し番号の名前のファイルにします。 そうでなくて、ひとつのファイルに記事を追加書き込みして 全記事をひとつのファイルに保存する方法もありますが拡張性に欠けます。

■ Sbit または SuEXEC

CGIがファイルを新規作成するので、もちろん sbit か SuEXEC で CGIを自分の権限で走らせなければなりません。それができないなら 掲示版は諦めなければなりません。

■ 記事の総数

記事の総数をCGIで簡単に調べられる方法を用意しておくべきです。 記事の総数もしくは最新記事の記事番号を記録しておく専用のファイルを 用意しておいて、始めはその値は 0000 にして、投稿がある度に その値を1づつ増やしていくことにします。またその値を用いて 記事を保存するファイルの名前を決定します。

■ 記事の表示範囲

全部の記事を一度に表示するのか、最新 8 通だけを表示させるか、 cookieを用いて閲覧者が前回までに見た記事以降の記事のみを表示させるか、 など表示範囲にもいろいろあります。今回は簡単に全記事を表示させましょう。 また、表示させる順序は新しい記事が上になる逆時間順とします。

■ 記事中のHTMLタグ

投稿記事に不完全なHTMLタグがあって、それをそのまま表示してしまうと 後続の表示が乱れてしまいます。いっそのことHTMLタグを全部無効にするため タグの角括弧 < > を &lt; &gt; にすり替えてファイルに 保存することにしましょう。

■ 記事中の改行

改行コードはどのOSの browser からの投稿でも "\r\n" の MS-DOS形式に なるようです。"\r"は無視して "\n"を <BR>にすり替えてファイルに 保存することにしましょう。


● 掲示版CGIの処理の流れ

投稿用FORMと記事を同じページに並べることにしましょう。

CGIはまずContent-typeを出力して、投稿用FORMを出力します。
そのFORMから投稿があればそれを受理します。 そして最新記事の番号をひとつ増やしてその番号で記事をファイルに保存します。
最新記事から逆順にすべての記事を出力して、CGIの作業は終了です。


● 原始的掲示版CGIのソース

原始的掲示版CGIのソースを置いておきます。参考にしてください。

原始的掲示版 bss.cc のソース

C/C++とCGIを理解している人なら上記の説明で十分でしょう。 この掲示版はあまりに原始的なので各自で改良して下さい。

掲示版CGIは、凝れば凝るほど楽しくなるので、プログラミング技術を 駆使して素晴らしい掲示版を作って、色々な人との対話を楽しんで下さい。


目次

Copyright(C) by Naoki Watanabe. Oct 21st, 1995.
渡辺尚貴 naoki@cms.phys.s.u-tokyo.ac.jp