⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 show.cgi

📁 这个是分屏聊天室源码。需要分屏的聊天室请参考
💻 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(&quot;$chkusername&quot;);\" target=\"type\" TITLE=\"选取 $chkusername 为谈话对象\">".$usershow1."</a>"; 
$chktowho1 ="<a href=\"javascript:parent.selectwho(&quot;$chktowho&quot;);\" 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 + -