📄 show.cgi
字号:
#聊天室主窗口
#############################################
sub return_message {
#进行踢人的判定与执行
if (( $chkstat ne "" )&&($chkstat ne '2')) { do "$path/bekill.cgi"; &kill_htm($chkstat,"show"); }
@message=&readtxtfile($messagefile,2);
&dn_prompt("信息编号为空") if ($dnlastno eq "");
$userlist = "";
@chktemp=();
@chkstemp=() if ($sflag == 1); #保存用户分屏的信息
$filterusertemp="§$chkfilterlist§";
@message=(reverse sort(@message));
foreach (@message) {
($chkmessno,$chktimen,$mark,$chkuserip,$chkusername,$chkuserlevel,$chkusersex,$chktowhoway,$chktowho,$chkaddwordcolor,$chkaddsays,$chkaddsign,$chksays,$markend)=split(/‖/,$_);
if ($markend eq "end") {
if ($chkmessno > $dnlastno) {
if ($chkmessno <= $lastno) {
$check=0;
$messchk=0;
$chkusernametemp="§$chkusername§";
$chkusernametemp=~s/\*//g;
if ($filterusertemp=~ /$chkusernametemp/) {$check=1;}
if ($check==0) {
if ($sflag == 0) { #合屏下的信息提取
if (($chktowhoway eq "") || ($chktowho eq "")|| ($chktowho eq "全部")) { &message_show; }
elsif (($chktowho ne "") && ($chktowhoway eq "private") && (($username eq $chkusername) || ($username eq $chktowho))) { &message_show;}
elsif (($chktowho ne "") && ($chktowhoway eq "private") && (($userlevel>$chkuserlevel) && ($userlevel>=$level_seeprivate))) { &message_show;}
push(@chktemp,$messabc) if ($messchk ==1);
}
if ($sflag == 1) { #分屏下信息提取
$smess = 0;
if ($mark =~ /login|logout|kickout|line/) { &message_show; }
elsif ((($chktowhoway eq "") || ($chktowho eq "")|| ($chktowho eq "全部")) &&($username ne $chkusername)&&($username ne $chktowho)) { &message_show; }
elsif (($username eq $chkusername) || ($username eq $chktowho)) { $smess = 1; &message_show; }
push(@chktemp,$messabc) if (($messchk ==1)&&($smess == 0));
push(@chkstemp,$messabc) if (($messchk ==1)&&($smess == 1));
}
}
}
}
else { last; }
}
}
print "<html><head></head><body>\n";
if ($sflag == 1) { #分屏下信息提取
if (@chkstemp ne "") {
print "<script Language='JavaScript'>\n";
for ($c = $#chkstemp; $c >= 0; $c--) { print "parent.smessage.document.writeln('$chkstemp[$c]<br>');\n"; }
print " </script>\n";
}
}
if (@chktemp ne "") {
print "<script Language='JavaScript'>\n";
for ($c = $#chktemp; $c >= 0; $c--) { print "parent.message.document.writeln('$chktemp[$c]<br>');\n"; }
print " </script>\n";
}
if ($userlist ne "") { $userlist .="<script>parent.write1();</script>"; print qq~$userlist\n~; }
print "</body></html>\n";
#先输出以后再整理文件,这样效率会高很多了
if ($#message>$allow_message * 5) {
if ($allow_messagerecord==1) {
$messagerecfile = "$yearn-$monn-$dayn.cgi";
open(MESSAGERECORD, ">>$messhead$messagerecfile") || die $! ;
flock(MESSAGERECORD,2) if ($unixsys == 1) ; }
open(MESSAGE,">$filehead$messagefile") || die $!;
flock(MESSAGE,2) if ($unixsys == 1) ;
@message=sort @message;
for($i=0;$i<=$#message;$i++) {
if ($message[$i] ne "\n") {
if ($i < $#message - $allow_message * 3) { if ($allow_messagerecord==1) {print MESSAGERECORD "$message[$i]";}}
else {print MESSAGE "$message[$i]";}
}
}
flock(MESSAGE,8) if ($unixsys == 1); close(MESSAGE);
if ($allow_messagerecord==1) { flock(MESSAGERECORD,8) if ($unixsys == 1); close(MESSAGERECORD); }
}
}
#################################
# 显示用户说话的信息
#################################
sub message_show {
local($chkusersex1) ="<font size=-2>$chkusersex</font>" if (($allow_sex2==1) || (($allow_sex2==2) && (($mark eq "login") || ($mark eq "logout") || ($mark eq "kickout"))));
local($chksayid) ="";
local($chkusername1) =$chkusername;
if ($chkusername eq $username) {
$chksayid = "<font size=-3>★ </font>";
$chkusername1 = "<b>$chkusername1</b>";
}
local($usercolor1) = "<font color=$sayscolor1>";
local($usercolor2) = "</font>";
local($chktowho1) ="<font color=$sayscolor2>$chktowho</font>";
if ($chktowho eq $username) {
$chktowho1 ="<b>$chktowho1</b>" if ($chkusername ne $username);
$chksayid = "<font size=-3>☆ </font>" if ($chksayid eq "");
}
local($chktimen1) ="<font size=-3>($chktimen)</font>" if ($allow_time==1);
local($chkuserip1) ="<font size=-3>[$chkuserip]</font>" if ($userlevel>=$level_seeip);
local($chkaddsign1) ="<font face=wingdings size=$addsign_size>$chkaddsign</font>" if ($chkaddsign ne "");
local($chkaddwordcolor1)="<font color=$chkaddwordcolor>" if ($chkaddwordcolor ne "");
local($chkaddwordcolor2)="</font>" if ($chkaddwordcolor ne "");
local($usershow1) = "$usercolor1$chkusername1$chkuserip1$usercolor2";
$usershow1 ="<a href=\"javascript:parent.selectwho("$chkusername");\" target=\"type\" TITLE=\"选取 $chkusername 为谈话对象\">".$usershow1."</a>";
$chktowho1 ="<a href=\"javascript:parent.selectwho("$chktowho");\" target=\"type\" TITLE=\"选取 $chktowho 为谈话对象\">$chktowho1</a>";
if ($mark eq "says") {
if (($chktowho eq "")||($chktowho eq "大家")) { $messabc = "$chksayid$usershow1$chkaddsays 对 $chktowho1 说: $chkaddwordcolor1$chksays$chkaddwordcolor2 $chkaddsign1$chktimen1"; $messchk =1;}
elsif (($chktowho ne "") && ($chktowhoway ne "private")) { $messabc = "$chksayid$usershow1$chkaddsays 对 $chktowho1 说: $chkaddwordcolor1$chksays$chkaddwordcolor2 $chkaddsign1$chktimen1"; $messchk =1; }
elsif (($chktowho ne "") && ($chktowhoway eq "private") && (("$username‖$userlevel" eq "$chkusername‖$chkuserlevel") || ($username eq $chktowho))) {
$chkaddsays =~ s/说//g; $messchk =1;
$messabc = "<font color=red size=-3>●</font> $usershow1$chkaddsays 对 $chktowho1 说: $chkaddwordcolor1$chksays$chkaddwordcolor2 $chkaddsign1$chktimen1"; }
elsif (($chktowho ne "") && ($chktowhoway eq "private") && (($userlevel>$chkuserlevel) && ($userlevel>=$level_seeprivate))) {
$chkaddsays =~ s/说//g; $messchk =1;
$messabc = "<font color=red size=-3>●</font> $usershow1$chkaddsays 对 $chktowho1 说: $chkaddwordcolor1$chksays$chkaddwordcolor2 $chkaddsign1$chktimen1"; }
}
elsif ($mark eq "act") {
$chksayid = "<font size=-3>★ </font>" if ($chkusername eq $username);
if ($chktowho eq $username) { $chksayid = "<font size=-3>☆ </font>" if ($chksayid eq ""); }
$chksayid = "<font color=red>$chksayid</font>" if (($chktowhoway eq "private")&&($chktowho ne "大家"));
$messchk =1; $messabc = "$chksayid$chkaddwordcolor1$chksays$chkaddsign1$chkaddwordcolor2$chktimen1";}
elsif ($mark eq "login") {
if (($chkusername eq $superuser)&&($superhidden)) { return; }
$chksays = $roomin{$chkusersex} if ($chksays eq ""); $messchk =1;
$messabc = "<font color=$loginword>$roomtitle$roompromt:$usershow1 $chksays$chktimen1</font>";
$userlist .= "<script>parent.add('$chkusername','$chkusersex','$chkuserlevel','$chkstat','$chkmessno')</script>"; }
elsif ($mark eq "logout") {
if (($chkusername eq $superuser)&&($superhidden)) { return; }
$chksays = $roomout{$chkusersex} if ($chksays eq ""); $messchk =1;
$messabc = "<font color=$logoutword>$roomtitle$roompromt:$usershow1 $chksays$chktimen1</font>";
$userlist .= "<script>parent.del('$chkusername','$chkmessno')</script>"; }
elsif ($mark eq "line") {
if (($chkusername eq $superuser)&&($superhidden)) { return; }
$messchk =1; $messabc = "<font color=$sysmesscolor>$usershow1 异常掉线</font> $chktimen1";
$userlist .= "<script>parent.del('$chkusername','$chkmessno')</script>"; }
elsif ($mark eq "kickout") {
$chktowho1 = "网管" if ($username ne $chktowho); $messchk =1;
$messabc = "<font color=$logoutword>$roomtitle$roompromt: $usershow1 被 $chktowho1 $roomkickout$chktimen1</font>";
$userlist .= "<script>parent.killuser('$chkusername','$chkusersex','$chkuserlevel','k','$chkmessno')</script>"; }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -