#!/usr/bin/perl #退室 # 99/1/31 update(v4.5) by 普通 #==================================================================== #ご協力を頂いた方 #oidon #==================================================================== #【?】# 既にあればそこまでのパスを指定します。 require './jcode.pl'; require './chat_env.cgi'; require './chat_lib.pl'; &env_init; ########################################################################################### ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $mon++; $date_now = "$year年$mon月$mday日$hour時$min分"; $date = "$mon月$mday日$hour時$min分"; $time = "$mday日$hour時$min分"; $times = time; if ($remote_host == 1) {$rhost = "/$ENV{'REMOTE_HOST'}";} else {$rhost = '';} #=============================================================== if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; &jcode'convert(*value,'sjis'); $in{$name} = $value; } #=============================================================== if ($in{'roomno'}) {&main();} else {&error();} exit; sub main { $color = $in{'color'}; $roomno = $in{'roomno'}; $profno = $in{'profno'}; #部屋属性取得 &ReadHeader ($roomno); ($roomname,$f_intime,$f_outtime,$f_memcnt,$hf_bgcolor,$hf_txcolor,$hf_line,$hf_roomenv,$hf_roompass,$hf_ccolor,$dmy) = split(/||\n/,$hf_list); $chatname = $in{'chatname'}; if ($profno) { $chatname_disp = "$chatname";} else {$chatname_disp = $chatname;} #部屋別参加メンバー名称削除 $memcnt = 0; $member = 'ng'; &LockReadMember ($roomno); foreach (@mf_list) { ($mf_roomno,$mf_roomname,$mf_chatname,$mf_intime,$mf_seq,$mf_ipaddr,$mf_bgcolor,$mf_txcolor,$mf_line,$mf_ccolor) = split(/||\n/); if ($chatname eq $mf_chatname) { $member = 'ok'; $_ = ''; } else {$memcnt++;} } &UnlockWriteMember ($roomno); #退室メッセージ表示&活動ログ採取 if ($member eq 'ok') { &endmsg(); if ($guid_msg eq '1') {&an_endmsg();} &logwrite(); } #Chat室表紙情報更新 &LockReadHeader ($roomno); ($f_roomname,$f_intime,$f_outtime,$f_memcnt,$hf_gbcolor,$hf_txcolor,$hf_line,$hf_roomenv,$hf_roompass,$hf_ccolor,$dmy) = split(/||\n/,$hf_list); $hf_list = "$f_roomname|$f_intime|$date|$memcnt|$hf_gbcolor|$hf_txcolor|$hf_line|$hf_roomenv|$hf_roompass|$hf_ccolor|\n"; &UnlockWriteHeader ($roomno); print "Location: $url2\n\n"; } #参加履歴登録 sub logwrite { &WriteLog ("$logtext\n"); } #退室メッセージ書き込み sub endmsg { ############### 変更箇所 ############################# #オリジナルスクリプト #################################################### # if ($icon eq 'y') {$logtext = "
  • から「$chatname_disp」さんが退室!\[$date\]
    ";} ############### 変 更 後 ###################### #フラッシュバージョン ########################################### if ($ficon eq 'y') {$logtext = "
  • から「$chatname_disp」さんが退室!\[$date\]
    ";} ################ 変更はここまで ####################### else {$logtext = "
  • $roomnameから「$chatname_disp」さんが退室!\[$date\]
    ";} &WriteComment($roomno,"「$chatname_disp」さんが退室!\[$date$rhost\]
    \n"); } #他部屋への退室メッセージ投稿 sub an_endmsg { foreach $froomno (@room_list) { next if ($froomno eq $roomno || -z "${fbase}roommember$froomno.txt"); ############### 変更箇所 ############################# #オリジナルスクリプト #################################################### # if ($icon eq 'y') { # $ta_com = "ご案内>「$chatname_disp」さんがから退室\[$date$rhost\]
    \n";} ############### 変 更 後 ###################### #フラッシュバージョン ########################################### if ($ficon eq 'y') { $ta_com = "ご案内>「$chatname_disp」さんがから退室\[$date$rhost\]
    \n";} ################ 変更はここまで ####################### else { $ta_com = "ご案内>「$chatname_disp」さんが$roomnameから退室\[$date$rhost\]
    \n";} &WriteComment ($froomno,$ta_com); } } sub error { print<<"__EOF__"; Content-type: text/html $title2 $hp_bcolor
    ここに入る為の情報に誤りがあります。
    __EOF__ exit(0); }