29+. ミニCHAT入退室付き -- おひとりさん、ご案内〜

 ミニCHATに入室・退室の表示機能を付けたものだ。とある美女(推定)のリクエストにより公開。これならば、誰かが参加してくるたびにシステムが教えてくれるから、とつぜん話に割り込まれてギョギョッとすることがないぞ。たぶん。
 この手のチャットを作るときは、送信ボタン一発で、入力用フレームと出力用フレームの双方を書き換えなくてはならない。それには外枠をCGIで作り、さらに各フレームの中でCGIを表示するという二重構造が必要だ。慣れないうちは結構ややこしいので、じっくりスクリプトを眺めて理解してほしい。


実行例

 サンプルを見てみてね。


レシピ

【材料】
 <1> chat.cgi…… ミニCHATフレーム用スクリプト
 <2> login.cgi…… ミニCHAT入室用スクリプト
 <3> input.cgi…… ミニCHAT書き込み用スクリプト
 <4> output.cgi…… ミニCHATログ表示用スクリプト
 <5> chat.log…… ミニCHAT用ログファイル

【手順】
(1) CGIの実行環境の確認

本スクリプトはCGIを利用するため、CGIの実行環境設定を行う。

(2) 上記<1>〜<5>ファイルをサーバーに転送する

これらはすべて同じディレクトリに転送すること。
すべてASCIIモードで転送すること。

(3) UNIXにログインしてファイルのパーミッションを変更する

$ chmod 705 *.cgi [Enter]
$ chmod 606 chat.log [Enter]

(4) UNIX上でスクリプトの動作確認をする

$ ./login.cgi [Enter]
$ ./input.cgi [Enter]
$ ./output.cgi [Enter]
$ ./chat.cgi [Enter]
実行してとりあえずHTML文書が出力されることを確認する。

(5) ブラウザで表示して動作確認をする

まず名前とアドレスを入力して参加ボタンを押す。
すると「○○さんが来た」と表示され、書き込みモードになる。
退室ボタンを押すと「○○さんが去った」と表示し初期画面に戻る。

参考: UNIXオペレーションの行頭にある"$"はUNIXのプロンプトなので、入力する必要はありません。


スクリプトの説明

 このスクリプトを使うには、リストの冒頭にある各種の設定を、自分のシステムに合わせて修正する必要がある。

--- chat.cgi ---
$title = 'ミニCHAT2';

 チャットのタイトルにする。ブラウザのタイトルバーに表示される。

$logfile = 'bbs.log';

 ログの保存ファイル名にする。output.cgiの設定と同じにすること。

$maxlog = 100;

 ログの最大保存数にする。output.cgiの設定と同じにすること。

$hold_days = 365;

 クッキーの保存日数にする。

--- output.cgi ---
$title = 'ミニCHAT2';

 チャットのタイトルにする。出力フレームの先頭に表示される。

$mail = 'roro_pet@p4room.mda.or.jp';

 チャット管理人のメールアドレスにする。

$logfile = 'bbs.log';

 ログの保存ファイル名にする。chat.cgiの設定と同じにすること。

$maxlog = 100;

 ログの最大保存数にする。chat.cgiの設定と同じにすること。

$hr = '<hr noshade size="1">';

 書き込みの区分線のスタイルを指定する。


ミニCHAT入退室付きの操作

 チャットに参加するには、以下の2つの欄を設定し、参加ボタンを押す。

 名前入力欄: 自分のハンドル名
 アドレス入力欄: メールアドレスまたはホームページのURL

 すると「○○さんが来た」とのメッセージが表示され、入力フレームが書き込みモードに変わる。
 メッセージを書き込むには、ここで以下の2つの欄を設定する。

 入力欄: メッセージ本文
 自動更新: 自動リロードの時間間隔を決定

 送信ボタンを押せば、書き込んだメッセージがすぐに表示される。入力欄を空白にして送信ボタンを押した場合は、再読込のみになる。
 チャットから抜けたい場合は、退室ボタンを押す。すると「○○さんが去った」と表示され、入力フレームは初期状態に戻る。正式に退室せずにチャットをやめても特に問題はない。単にチャット参加者の不審を招くだけである。


[おまけ解説一覧に戻る]