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

📄 showmem.cgi

📁 一个linux论坛
💻 CGI
字号:
#!/usr/bin/perl
#######################################################
#  LB5000MX 源程序版权所有:CGI编程者之家 (CGIer.com)
#
#  程序编写:山鹰糊 (Shining Hu)、花无缺 (Ifairy Han)
#
#  程序修改:BigJim (94Cool.Net)
#######################################################
# 使用办法: showmem.cgi?show=显示数量
# 例: 在你主页的适当位置加入以下语句
#      <script src="showmem.cgi?show=20"></script>
#      这样就可以在相应位置显示论坛的用户前20名
#
#   如果不需要显示这么详细,请自己看这个程序最后的
#   输出部分,删除掉不要显示的列,就可以了。
###################################################

BEGIN
{
	$LBPATH = '.';
	my $pgm = $0;
	$pgm =~ s/\\/\//g;
	$pgm =~ s/^.*\/([^\/]+)$/$1/g;
	unless (-e $LBPATH.'/'.$pgm)
	{
		foreach ($0, $ENV{'SCRIPT_FILENAME'}, $ENV{'PATH_TRANSLATED'})
		{
			s!\\!/!g;
			s/^(.*)\/[^\/]+$/$1/g;
			if (-e $_ . '/' .$pgm)
			{
				$LBPATH = $_;
				last;
			}
		}
	}
	unshift(@INC, "$LBPATH");
}

unless ($ENV{"HTTP_REFERER"} =~ /$ENV{"HTTP_HOST"}/i)
{
	print "Content-Type: text/html\n\n";
	print "document.write('<font color=red> 对不起,不允许非本论坛主机调用!</font>');";
	exit;
}

$thisprog = "showmem.cgi";
require "data/boardinfo.cgi";
require "lb.lib.pl";
&ReadParse;
$show = $in{"show"};
$show = 10 if ($show < 1);
$|++;

print "Content-type: text/html; charset=gb2312\n\n";

$filetoopen = "${lbdir}data/onlinedata.cgi";
open(FILE, $filetoopen);
@onlinedata1 = <FILE>;
close(FILE);

$filetoopen = "${lbdir}data/lbmember0.cgi";
open(FILE, $filetoopen);
@members = <FILE>;
close(FILE);

$str = "";
$str.= "<table cellSpacing=0 cellPadding=0 border=0 width=100%>";
$str.= "<tr><td align=center><b>名字</b></td><td align=center><b>发贴量</b></td><td align=center><b>状态</b></td></tr>";

for ($i = 0; $i < $show && $i < @members; $i++)
{
	my ($membername, $post) = split(/\t/, $members[$i]);
	my $memberstat = grep(/^$membername\t/i, @onlinedata1) ? "<font color=#ff0000>在线</font>" : "不在线";
	my $name = $uri_escape eq "no" ? $membername : uri_escape($membername);
	$name =~ s/ /\_/g;
	$str .= "<tr><td align=center><a href=$boardurl/profile.cgi?action=show&member=" . ($uri_escape eq "no" ? $name : uri_escape($name)) . " target=_blank>$membername</a></td><td align=center>$post</td><td align=center>$memberstat</td></tr>";
}

$str .= "</table>";
print "document.write('$str');";
exit;

sub ReadParse
{
	$buffer = $ENV{"QUERY_STRING"};
	@pairs = split(/&/, $buffer);
	foreach (@pairs)
	{
		($name, $value) = split(/=/, $_);
		$value =~ tr/+/ /;
		$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
		$value =~ s/<!--(.|\n)*-->//g;
		$value =~ s/__/--/g;
		$value =~ s/>/&gt;/g;
		$value =~ s/</&lt;/g;
		$value =~ s/\t//g;
		$in{$name} = $value;
	}
	return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -