応用編(その二)解説


■初期設置以外の設置操作を要する応用編を紹介しています。
 (行数は目安です、バージョンにより変更の可能性があります)

( 1).入室ログを採取する。(IPアドレス、リモートホスト確認)[Up 1999/06/07]
( 2).部屋数を増やす。[Ver:5.0Up 1999/06/05]
( 3).部屋数を少なくする。[Ver:5.0Up 1999/06/05]
( 4).発言ファイル隠しをする。
( 5).発言での全タグ許可にする。[1999/07/30]
( 6).語り掛け拒否を入室時に選択可能にする。[Ver:4.8 1999/08/06]
( 7).発言時に顔文字を容易に張り付けたい。[Ver:4.8 1999/08/06]
( 8).独り言は発言ランキングへのカウントしない。[Ver:4.8 1999/08/06]
( 9).入室時の選択項目を省略する。[Ver:4.8 1999/08/07]
(10).個別部屋管理としてサブ管理者パスワードを設定する。[Ver:5.0Up 1999/06/05]
(11).発言で一部タグ(<IMG>)を利用可能にしたい。[Ver:5.0 1999/08/06]
(12).部屋属性が内緒の場合、発言ランキングを更新しない。[Ver:5.2 1999/08/06]
(13).発言時にあいこん画像を容易(選択)に張り付けたい。[Ver:5.2 1999/08/06]
(14).発言ログをテキスト保存する。[Ver:5.21 1999/08/16]
(15).入室時、ハンドルへの選択画像を付加する。[Ver:5.3 1999/09/22]
(16).複数ZooChat設置でのプロフィール共通利用。[Ver:5.3 2003/02/03]

入室ログ採取(IPアドレス、リモートホスト確認)
チャット部屋の表示・入室を制限する為に当チャットではIPアドレスやリモートホスト名にてアクセス制限を設定する事が比較的容易に出来る様になっています。アクセス制限を掛けたい方のIPアドレスやリモートホスト名を調査する為には、まずここで記載された「入室ログ採取」を行って下さい。
入室ログは下記形式にて1ファイル/日で自動作成されます。入室ログファイルは自動では削除されませんので、定期的にFTPなどのツールで削除する事をお勧めします。
 【年/月/日,時:分,部屋名称,入室ハンドル名,リモートホスト名,IPアドレス,ブラウザ情報】
設置:"zoo"ディレクトリ>の下に"log"ディレクトリを作成します。次にパーミッションの設定(777)を設定します。全体のディレクトリ構成とファイルの配置例は以下のとおりです。(かっこ内はパーミッション)

(ホームディレクトリ)index.htmなど
   |
   +--- zoo /
           |        *.cgi      [755]
           |        *.txt      [666]
           |        *.gif
           |        jcode.pl   [755]
           |        ring au
           +---log  [777]/ここに入室ログが作成されます。

プログラム修正:chat_env.cgi

■46行目 $log = '0';を$log = '1';に変更してください。

備考ログファイル名はinlog999999.csv(999999は年月日)です。自動では消去されませんので適宜バックアップ&削除を実施してください。


部屋の増化
設置:2部屋増加を例に手順を説明

1.追加ファイル作成
・chati001.txtをテキストエディタで開き、「名前を付けて保存」でchati005.txtとchati006.txtの名前で保存する。
・room001.txtをテキストエディタで開き、「名前を付けて保存」でroom005.txtとroom006.txtの名前で保存する。
・roommember001.txtをテキストエディタで開き、「名前を付けて保存」でroommember005.txtとroommember006.txtの名前で保存する。
・部屋画像をanimal005.gif,animal006.gifを用意してください。

2.プログラム修正
・chat_env.cgi
 ■32行目 @room_list = ('001','002','003','004');を@room_list = ('001','002','003','004','005','006');に変更してください。

Ver:4.8まで
3.HTML修正
・chat_delete.html
 ■15行目直後
 ■29行目直後
 ■43行目直後
   にそれぞれ
 <OPTION>005
 <OPTION>006
   を追加してください。

以上、修正が完了したら、*.cgi, *.txtを「テキストモード」で、*.gifを「バイナリーモード」で、"zoo"ディレクトリへFTP転送したのち、以下のとおパーミッションを設定して下さい。

*.cgi755
*.txt666

ページでの設定:部屋毎に変更します。
 「Chat表紙ページ」−「管理専用(Chat室・メンテナンス)」−「部屋属性の変更」を開きます。
追加した部屋名称を変更します。


部屋の減少
設置:通常設置(4部屋)後での2部屋削除を例に手順を説明

1.プログラム修正
・chat_env.cgi
 ■32行目 @room_list = ('001','002','003','004');を@room_list = ('001','002');に変更してください。

Ver:4.8まで
2.HTML修正
・chat_delete.html
 ■14, 15行目部分
 ■28, 29行目部分
 ■42, 43行目部分
   の
 <OPTION>003
 <OPTION>004
   を削除してください。

以上、修正が完了したら、*.cgiを「テキストモード」で、"zoo"ディレクトリへFTP転送します。
次に下記ファイルをサーバから削除します。
chati004.txt, room004.txt, roommember004.txt
chati005.txt, room005.txt, roommember005.txt


発言ファイル隠し
Chat発言で「ささやき」を使っても、発言を記憶しているファイル名を直接ブラウザ指定する事により見えてしまいます。従って、データファイルの場所移動により隠してしまう事が出来ます。注意:ここの例と同じディレクトリ名じゃ隠しになりませんよ。

設置
1.ディレクトリ作成
"zoo"ディレクトリ>の下に"txt"ディレクトリを作成します。全体のディレクトリ構成とファイルの配置例は以下のとおりです。(かっこ内はパーミッション)

(ホームディレクトリ)index.htmなど
   |
   +--- zoo /
           |        *.cgi      [755]
           |        *.gif
           |        jcode.pl   [755]
           |        ring au
           +---txt/
                    *.txt[666]
2.プログラム修正
・chat_env.cgi
 ■13行目 $fbase = '';を$fbase = './txt/';に変更してください。

以上、修正が完了したら、chat_env.cgiを「テキストモード」で、"zoo"ディレクトリへFTP転送します。*.txtを「テキストモード」で、"txt"ディレクトリへFTP転送したのちパーミッションを666に設定してください

備考:ご利用サーバによっては、ブラウザにてディレクトリ(ファイル一覧)表示がされる設定になっています。この場合、ディレクトリ名は発覚してしまうので、"zoo"ディレクトリ配下にダミーページとしてindex.htmlを置くことをお勧めいたします。


発言ので全タグ許可
設置:通常の発言にてHTMLタグを使えるようにします。

1.プログラム修正
・chat_start.cgi
 ■522行目近辺
#発言メッセージ書き込み
sub commsg {
	$comment = $in{'comment'};
	$comment =~ s/</&lt;/g;
	$comment =~ s/>/&gt;/g;
	$comment =~ s/\r//g;
	$comment =~ s/\n//g;
	if ($dic_usefnc) {
		if ($dic_usefnc eq '1') {$dicnum = '9999';}
		else                    {$dicnum = $roomno;}
		if (-e "${dic_base}zchat$dicnum.dic") {
			&jcode'convert(*comment, 'euc');
			$comment = &dic_conv($dicnum,$comment);
		}
	}
	&jcode'convert(*comment, 'sjis');
	$comment =~ s/([^=\"]|^)(http:\/\/[\w\-\?\#\+\.\/~:]{9,})/$1<A HREF=\"$2\" TARGET=\"_blank\">$2<\/A>/ig;
を下記の様に変更します。
#発言メッセージ書き込み
sub commsg {
	$comment = $in{'comment'};
#	$comment =~ s/</&lt;/g;
#	$comment =~ s/>/&gt;/g;
	$comment =~ s/\r//g;
	$comment =~ s/\n//g;
	if ($dic_usefnc) {
		if ($dic_usefnc eq '1') {$dicnum = '9999';}
		else                    {$dicnum = $roomno;}
		if (-e "${dic_base}zchat$dicnum.dic") {
			&jcode'convert(*comment, 'euc');
			$comment = &dic_conv($dicnum,$comment);
		}
	}
	&jcode'convert(*comment, 'sjis');
#	$comment =~ s/([^=\"]|^)(http:\/\/[\w\-\?\#\+\.\/~:]{9,})/$1<A HREF=\"$2\" TARGET=\"_blank\">$2<\/A>/ig;

以上、修正が完了したら、chat_start.cgiを「テキストモード」で、"zoo"ディレクトリへFTP転送します。

備考:上記、プログラムの変更を実施した場合は、発言でのURL記入時の自動リンクは付きません。


語り掛け拒否を入室時に選択
設置:入室時に「語り掛け拒否」が選択可能になり、これを選択すると諸手続において語り掛け対象として、お名前表示されません。

1.プログラム修正
・chat_in.cgi
 ■156〜164行目近辺
##################################################Option:001 by Add Start
から
##################################################Option:001 by Add End
までの行の先頭文字「#」文字を消して下さい。

・zchat_instart.cgi
 ■75〜77行目近辺

##################################################Option:001 by Add Start
から
##################################################Option:001 by Add End
までの行の先頭文字「#」文字を消して下さい。
 ■403〜408行目近辺
##################################################Option:001 by Add Start
から
##################################################Option:001 by Add End
までの行の先頭文字「#」文字を消して下さい。
################################################## NOT Option:001 by Add Start
から
################################################## NOT Option:001 by Add End
までの行に先頭に「#」文字を加えて下さい。

・chat_pro.cgi
 ■183〜189行目近辺
 ■218〜224行目近辺

##################################################Option:001 by Add Start
から
##################################################Option:001 by Add End
までの行の先頭文字「#」文字を消して下さい。
################################################## NOT Option:001 by Add Start
から
################################################## NOT Option:001 by Add End
までの行に先頭に「#」文字を加えて下さい。

以上、修正が完了したら、chat_in.cgi, zchat_instart.cgi, chat_pro.cgiを「テキストモード」で、"zoo"ディレクトリへFTP転送します。


発言時に容易に顔文字を張り付けたい
設置:発言時に顔文字を選択できます。発言文字直後に表示されます。尚、本個別改造は「あいこん画像容易(選択)張り付け」とは同時に利用できません。

1.プログラム修正
・zchat_instart.cgi
 ■39〜41行目近辺
 ■149〜160行目近辺
##################################################Option:002 by Add Start
から
##################################################Option:002 by Add End
までの行の先頭文字「#」文字を消して下さい。

・chat_start.cgi
 ■38〜40行目近辺
 ■69〜71行目近辺
 ■150〜161行目近辺
 ■280〜284行目近辺
 ■316〜327行目近辺

##################################################Option:002 by Add Start
から
##################################################Option:002 by Add End
までの行の先頭文字「#」文字を消して下さい。

・room_move.cgi
 ■39〜41行目近辺
 ■139〜150行目近辺
 ■228〜232行目近辺

##################################################Option:002 by Add Start
から
##################################################Option:002 by Add End
までの行の先頭文字「#」文字を消して下さい。

・顔文字種の変更
 ■zchat_instart.cgi(39〜41行目近辺)
 ■chat_start.cgi(38〜40行目近辺)
 ■room_move.cgi(39〜41行目近辺)

##################################################Option:002 by Add Start
@face =('顔文字1','顔文字2','顔文字3');
##################################################Option:002 by Add End
上記形式で設定出来ます。

以上、修正が完了したら、zchat_instart.cgi, chat_start.cgi, room_move.cgiを「テキストモード」で、"zoo"ディレクトリへFTP転送します。


独り言は発言ランキングにカウントしない
設置:部屋に1人で発言した場合は発言ランキングへのカウントは行われません。

1.プログラム修正
・chat_start.cgi
 ■625〜627行目近辺
##################################################Option:003 by Add Start
から
##################################################Option:003 by Add End
までの行の先頭文字「#」文字を消して下さい。

以上、修正が完了したら、chat_start.cgiを「テキストモード」で、"zoo"ディレクトリへFTP転送します。


入室時の選択項目省略
設置:入室時の「ささやき受け可否」、「JAVA利用」、「フレーム利用」「クッキー利用」選択項目の表示を省略出来ます。

1.プログラム修正
・chat_in.cgi
 ■23〜28行目近辺
##################################################Option:004 by Add Start
$ds_seq   = '1';#ささやき受け可否(選択表示)
$ds_java  = '1';#JAVA利用するしない(選択表示)
$ds_frame = '1';#フレーム利用するしない(選択表示)
$ds_cook  = '1';#クッキー利用するしない(選択表示)
##################################################Option:004 by Add End
上記部分で省略したい項目の行の先頭に「#」文字を入れる。

以上、修正が完了したら、chat_in.cgiを「テキストモード」で、"zoo"ディレクトリへFTP転送します。


個別部屋管理としてサブ管理者パスワードを設定
設置:管理者パスワードと別に部屋毎に部屋管理(会話ログ初期化、退室忘れ対応、部屋属性設定、会話削除、特定者強制退室、変換辞書(おまけ&部屋別辞書利用時))を可能にする。

1.プログラム修正
・room_delete.cgi
 ■32行目近辺
@sub_pass = ('001|','002|','003|','004|');#管理者サブパスワード設定
上記部分で設定したい部屋を '部屋番号|サブバスワード' 形式で設定する。
 このスクリプトは会話ログ初期化、退室忘れ対応、会話削除、特定者強制退室の対応をします。

・room_mnt.cgi
 ■36行目近辺

@sub_pass = ('001|','002|','003|','004|');#管理者サブパスワード設定
上記部分で設定したい部屋を '部屋番号|サブバスワード' 形式で設定する。
 このスクリプトは部屋属性設定の対応をします。

・zchat_admin.cgiZooChat5.0追加)
 ■36行目近辺

@sub_pass = ('001|','002|','003|','004|');#管理者サブパスワード設定
上記部分で設定したい部屋を '部屋番号|サブバスワード' 形式で設定する。
 このスクリプトは管理者機能のメニュー表示の対応をします。

・zchat_dicmnt.cgiZooChat5.0追加:おまけキット)
 ■24行目近辺

@sub_pass = ('001|','002|','003|','004|');#管理者サブパスワード設定
上記部分で設定したい部屋を '部屋番号|サブバスワード' 形式で設定する。
 このスクリプトは会話変換辞書更新の対応をします。

以上、修正が完了したら、room_delete.cgi, room_mnt.cgi, zchat_admin.cgiを「テキストモード」で、"zoo"ディレクトリへFTP転送します。


一部タグ(<IMG>)を利用可能にしたい。ZooChat5.0追加)
設置:通常発言、ささやき及び語り掛けにて<IMG>タグを有効とする。

1.プログラム修正
・chat_start.cgi
 ■660〜662行目近辺
##################################################Option:005 by Add Start
から
##################################################Option:005 by Add End
までの行の先頭文字「#」文字を消して下さい。
・room_call.cgi
 ■207〜209行目近辺
##################################################Option:005 by Add Start
から
##################################################Option:005 by Add End
までの行の先頭文字「#」文字を消して下さい。

以上、修正が完了したら、chat_start.cgi, room_call.cgiを「テキストモード」で、"zoo"ディレクトリへFTP転送します。


部屋属性が内緒の場合、発言ランキングを更新しないZooChat5.2追加)
設置:部屋属性(表示)が「内緒」に設定されてる場合で、で発言した場合は発言ランキングの更新をは行われません。

1.プログラム修正
・chat_start.cgi
 ■628〜630行目近辺
##################################################Option:006 by Add Start
から
##################################################Option:006 by Add End
までの行の先頭文字「#」文字を消して下さい。

以上、修正が完了したら、chat_start.cgiを「テキストモード」で、"zoo"ディレクトリへFTP転送します。


発言時にあいこん画像を容易(選択)に張り付けたいZooChat5.2追加)
設置:発言時にあいこん画像を選択できます。発言文字直後に表示されます。
事前に張り付けたい「あいこん画像」を用意してください。当サイトで利用しているのは、ZooChatを使ってくださってるHP作成支援サイト「みいFactory」作を利用させて頂いてます。尚、本個別改造は「顔文字容易(選択)張り付け」とは同時に利用できません。

1.プログラム修正
・zchat_instart.cgi
 ■42〜45行目近辺
 ■161〜174行目近辺
##################################################Option:007 by Add Start
から
##################################################Option:007 by Add End
までの行の先頭文字「#」文字を消して下さい。

・chat_start.cgi
 ■41〜44行目近辺
 ■72〜75行目近辺
 ■162〜175行目近辺
 ■280〜284行目近辺
 ■328〜341行目近辺

##################################################Option:007 by Add Start
から
##################################################Option:007 by Add End
までの行の先頭文字「#」文字を消して下さい。

・room_move.cgi
 ■42〜45行目近辺
 ■151〜164行目近辺
 ■228〜232行目近辺

##################################################Option:007 by Add Start
から
##################################################Option:007 by Add End
までの行の先頭文字「#」文字を消して下さい。

・顔文字種の変更
 ■zchat_instart.cgi(42〜45行目近辺)
 ■chat_start.cgi(41〜44行目近辺)
 ■room_move.cgi(42〜45行目近辺)

##################################################Option:007 by Add Start
#	@eimsg1 =('汗','喜♪','メモ','涙','ども♪');
#	@eimsg2 =('ase.gif','wai.gif','memo.gif','daa.gif','domo.gif');
##################################################Option:007 by Add End
@eimsg1は選択での表示内容、@eimsg2は<IMG>タグでの張り付けファイル名となります。尚、あいこん画像へのパスは必要があれば(デフォルトはCGIと同じディレクトリです)chat_start.cgiの74行目の部分を変更してください。

以上、修正が完了したら、zchat_instart.cgi, chat_start.cgi, room_move.cgiを「テキストモード」、あいこん画像は「バイナリーモード」で"zoo"ディレクトリへFTP転送します。


発言ログをテキスト保存する。
設置:部屋内で発言された内容をテキスト形式にて保存を行います。保存された発言は部屋内での表示順序とは逆で、新しい発言は後ろに追加されていきます。他部屋からの語り掛け及び自発消し(反映)は保存されません。又、このログは自動では自動で消去されませんので設置管理者殿が適宜、削除する必要があります。

1.プログラム修正
・chat_start.cgi
 ■523行目近辺
#発言メッセージ書き込み
sub commsg {
	$comment = $in{'comment'};
	$comment =~ s//>/g;
	$comment =~ s/\r//g;
	$comment =~ s/\n//g;
ここの直後に
&fixlog ($roomno, "$date,$chatname,$comment\n");
を追加。
 ■最終行後に追加
sub fixlog {
	$fixlog = "${fbase}zchat_fixlog$_[0].txt";
	open (FXLF,">>$fixlog");
	flock(FXLF,2) if $FLK;
	print FXLF "$_[1]\n";
	close (FXLF);
	flock (FXLF,8) if $FLK;
}

以上、修正が完了したら、chat_start.cgiを「テキストモード」で、"zoo"ディレクトリへFTP転送します。zchat_fixlog****.txt(****部は部屋番号)を部屋数用意し、他テキスト(chati****.txt)を置いてる場所(ディレクトリ)と同じ所に転送しパーミッションを666に設定して下さい。


入室時、ハンドルへの選択画像を付加する。ZooChat5.3追加)
設置:プロフィール登録・紹介キット(Ver:2.2)との連携とする場合、ここでの画像選択が優先されます。

1.プログラム修正
・chat_in.cgi
 ■30〜36行目近辺
 ■177〜189行目近辺
##################################################Option:008 by Add Start
から
##################################################Option:008 by Add End
までの行の先頭文字「#」文字を消して下さい。
2.設定
・chat_in.cgi
 ■30〜36行目近辺
 @image = ('指定無し|NONE','表記1|画像ファイル名1','表記2|画像ファイル名2'・・・);形式
 表記:ページ表示時の選択表示
 画像ファイル名(拡張子.gifを除く)
・chat_env.cgi
 ■90行目近辺
 画像ファイルへのパスは$imgbase = '/icon/';にて設定します。

以上、修正が完了したら、chat_in.cgi, chat_env.cgiを「テキストモード」で、"zoo"ディレクトリへFTP転送します。


複数ZooChat設置でのプロフィール共通利用
ZooChatをディレクトリを分け複数設置した場合に於いても、プロフィールデータは共通して利用したい場合が在ると思います。chat_env.cgiの設定のみで行う事が可能です。但し、異なるサーバ設置の場合は共有する事は出来ません。

設置
1.設置ディレクトリ仮定

(ホームディレクトリ)index.htmなど
   |
   +--- zoo1 /
   |       |        *.cgi
   |       |        *.gif
   |       |        jcode.pl
   |       |        ring au
   |       |        zchat_profreg.txt
   |       +        *.txt
   +--- zoo2 /
           |        *.cgi
           |        *.gif
           |        jcode.pl
           |        ring au
           +         *.txt
ディレクトリzoo1配下にのみプロフィールデータを置きます。
2.プログラム修正
・ディレクトリzoo2配下のchat_env.cgi
 ■61行目 $pfbase = '';を$fbase = '../zoo1/';に変更してください。

以上、修正が完了したら、chat_env.cgiを「テキストモード」で、"zoo2"ディレクトリへFTP転送します。

備考:ご利用サーバによっては、ディレクトリ設定が相対では出来ない場合があります。この場合、絶対パスでの設定を試してみてください。


【2003年02月03日更新】
【TOPページ】 【設置解説】 【おまけコーナ】