📄 showmem.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/>/>/g;
$value =~ s/</</g;
$value =~ s/\t//g;
$in{$name} = $value;
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -