入退室表示

[上に] [前に] [次に]
たか [E-Mail] [HomePage] 1997/09/14(日) 23:22:51
チャットでよく「??さんが入室されました」とか「??さんが退室されました」と
出ますよね?ああいうCGIプログラムはどうすればよいでしょうか?
チャットの管理強化をしたいのですがこれには頭を抱えています。
どうかお願いします。

Wyas_System [E-Mail] [HomePage] 1997/09/15(月) 02:12:42
入室前にまず、テキストボックスに名前を入力します。

その後、入室が押された場合は、「だれだれさんが入室しました。」のメッセージをログに書く。

逆に、退室ボタンが押されたら、「だれだれさんが退室しました。」のメッセージをログに書く。

これだけじゃ駄目なんでしょうか?

後は、私がやってる方法は、基本的には、上記のような感じでやってますが、
別に、チャット参加者を管理するファイルを別で作って、入室、退室等の管理をさせるという方法です。

たか 1997/09/15(月) 22:04:48
そうなんです!!
そのプログラムをどういう風に作るのか分からず
悩んでおります(^^;;;)

チャット参加者を管理するファイルとはどういうものなんでしょうか?具体的に教えていただけないでしょうか?

やまっち@M&Tcom. [E-Mail] [HomePage] 1997/09/15(月) 23:49:44
------------------------------------------------------
やまっちです。初めまして。ちなみに私もCGI初心者&素人です。
------------------------------------------------------
はずしていたらすいません・・・・・。

チャット入室画面のフォームタグのボタンに

<input type="submit" name="mode" value="enter">

のようにNAME属性をつけて、CGIに引数として渡してやれば
良いのではないのでしょうか。

CGI本体の方には、この引数を受け取れるように

if ($ENV{'REQUEST_METHOD'} eq "POST"){
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else {
$buffer = $ENV{'QUERY_STRING'};
}
@parts = split(/&/,$buffer);
foreach (@parts){
($name,$value) = split(/=/,$_,2);
$value =~ tr/+/ /;
$value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C",hex($1))/eg;
$DATA{$name} = $value;

(↑チャットや伝言板の常套句だとは思いますが・・・)
のようなものを用意しておいて、その直後にでも、

if ($mode eq 'enter'){ &announce; }

という風に条件分岐させてサブルーチンへとばせるようにしておいて、

sub announce{
・・・(入室アナウンスをログに書込む処理)・・・
}

とすればうまくいきますよ、きっと・・・。(自信なし(^^;))

退室も同様の処理で出来るはずです。(多分)

チャット参加者を管理するファイル(ROM防止)等は
特に必要はないと思いますが・・・。(考え甘いかしら・・・)
(イタズラ防止のためにIPを記録しておく程度で良いと思います。
チャットに参加する人が監視されてる様な気分にならないためにも。)

*********************************************************

P.S. とほほさんへ

勝手にリンクしちゃってます。ご挨拶のメールもせず、すみません。

やまっち [E-Mail] [HomePage] 1997/09/16(火) 01:11:39
↑↑↑
$DATA{$name} = $value; のあとに

$mode = $DATA{'mode'};
}

が抜けてました。

失礼いたしました〜!

やまっち [E-Mail] [HomePage] 1997/09/16(火) 02:23:13
たびたびホントにすみません。↑上のは、

}
$mode = $DATA{'mode'};

の間違いです。

foreachの処理が終わってからでないとね〜・・・。(^^;

Wyas_System [E-Mail] [HomePage] 1997/09/16(火) 03:37:04
管理用のファイルの中身は、私のチャットの例ですが

IPADDRESS,参加者の名前,発言時間,発言内容

といったものです。

このファイルは、入室、退室にはもしかしたらあまり関係ないかも知れませんが、
これがあると、何人入室してるとか、誰が入室してて誰が退室したなどがわかります。

あと私は、このファイルを使って、その人の連続発言を防がせるということもやってます。


入室、退室のメッセージをだすだけでしたら
まず、入室用の画面を作って、入室のボタンが押されたら
入室しましたをログに書き、通常のチャット画面を表示する。
後は、通常のチャット画面に、退室用のボタンを作って
その退室のボタンが押されたらログに退室しましたのメッセージを書くだけで
いいはずです。

う〜ん!!私って説明が下手だから同じ事を書いてるような気もするけど
まだ、わからなかったら連絡ください。
あと、私のHPのチャットを見てみるなんてのも一つのてかもしれません。
勝手にHPの宣伝までしてすみません。
てなわけでまた

[上に] [前に] [次に]