📄 memberlist.cgi
字号:
#!/usr/bin/perl
#############################################################
# LeoBoard ver.5000 / LB5000 / 雷傲超级论坛 ver.5000
#
# 版权所有: 雷傲工作室(原蓝宝石软件工作室)
#
# 制作人 : 山鹰糊 (Shining Hu)
# 花无缺 (Ifairy Han)
#
# 主页地址: http://www.CGIer.com/ CGI 编程者之家
# http://www.LeoBoard.com/ 雷傲论坛支持主页
# http://www.leoBBS.com/ 本论坛直通车
#
#############################################################
BEGIN {
$start_time = (times)[0] + (times)[1];
$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");
}
use LBCGI;
$LBCGI::POST_MAX=2000;
$LBCGI::DISABLE_UPLOADS = 1;
$LBCGI::HEADERS_ONCE = 1;
require "data/boardinfo.cgi";
require "data/boardstats.cgi";
require "data/styles.cgi";
require "data/membertitles.cgi";
require "lb.lib.pl";
$|++;
$query = new LBCGI;
&ipbanned; #封杀一些 ip
$backgroundcolor = "005984";
$topanzahl = 20; #显示发贴前多少名?显示最新多少个加入的用户?
$startseite = "1"; #默认排序: 1->发贴数, 2->前N名, 3->用户名, 4->注册日期
$memberproseite = 25; #每页显示用户数
if (! $inmembername) { $inmembername = cookie("amembernamecookie"); }
if (! $inpassword) { $inpassword = cookie("apasswordcookie"); }
$inmembername =~ s/[\a\f\n\e\0\r\t\`\~\!\@\#\$\%\^\&\*\(\)\+\=\\\{\}\;\'\:\"\,\.\/\<\>\?]//isg;
$inpassword =~ s/[\a\f\n\e\0\r\t\|\@\;\#\{\}\$]//isg;
if ($inmembername eq "" || $inmembername eq "客人" ) {
$inmembername = "客人";
}
if ($infosopen == 2) {
# &getmember("$inmembername");
&getmembernolock("$inmembername");
&error("查看会员列表&客人无权查看会员列表!") if ($inmembername eq "客人");
if ($userregistered eq "no") { &error("查看会员列表&你还没注册呢!"); }
elsif ($inpassword ne $password) { &error("查看会员列表&你的密码有问题!"); }
&error("查看会员列表&论坛会员列表只有坛主和版主可以查看!") if (($membercode ne "ad")&&($membercode ne 'smo')&&($membercode ne 'cmo')&&($membercode ne "mo"));
}
elsif ($infosopen == 1) {
# &getmember("$inmembername");
&getmembernolock("$inmembername");
&error("查看会员列表&客人无权查看会员列表!") if ($inmembername eq "客人");
if ($userregistered eq "no") { &error("查看会员列表&你还没注册呢!"); }
elsif ($inpassword ne $password) { &error("查看会员列表&你的密码有问题!"); }
}
else {
# &getmember("$inmembername");
&getmembernolock("$inmembername");
}
$cpudisp = 1 if (($membercode eq "ad")||($membercode eq "smo"));
&title;
my $filetoopens = "$lbdir" . "data/onlinedata.cgi";
$filetoopens = &lockfilename($filetoopens);
if (!(-e "$filetoopens.lck")) {
&whosonline("$inmembername\t用户列表\tnone\t查看用户列表\t");
}
open (FILE, "$lbdir/data/lbmember.cgi");
@file = <FILE>;
close (FILE);
$totlemembertemp=@file;
$query = new LBCGI;
$L = $query -> param ("L");
if($L){
$pagel="&L=$L";
$LL=lc($L) if($L ne "*");
@CCfile=@file;@file=();
if($L eq "*"){
@file=grep(/^[^a-zA-Z]/,@CCfile);
}else{
@file=grep(/^[$L|$LL]/,@CCfile);
}
}
foreach $line (@file) {
@tmpuserdetail = split (/\t/, $line);
chomp @tmpuserdetail;
if ($tmpuserdetail[1] eq banned) {push (@banned, "$tmpuserdetail[0]"); }
push (@cgi, "$tmpuserdetail[0]");
$postundmember {"$tmpuserdetail[0]"} = $tmpuserdetail[2];
$datumundmember {"$tmpuserdetail[0]"} = $tmpuserdetail[3];
}
@cgi=sort(@cgi);
@sortiert = reverse sort { $postundmember{$a} <=> $postundmember{$b} } keys(%postundmember);
@sortiert1 = sort { $datumundmember{$a} <=> $datumundmember{$b} } keys(%datumundmember);
@sortiert2 = reverse(@sortiert1);
if ($boardlogo =~ /\.swf$/i) {$forumgraphic = qq~<PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><embed src=$imagesurl/myimages/$boardlogo quality=high width=$boardlogow height=$boardlogoh pluginspage="http:\/\/www.macromedia.com\/shockwave\/download\/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application\/x-shockwave-flash"><\/embed>~}
else {$forumgraphic = qq~<img src=$imagesurl/myimages/$boardlogo>~};
$output .= qq~
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth align=center>
<tr>
<td width=30% rowspan=2 valign=top>$forumgraphic</td>
<td valign=middle align=left><font color=$fontcolormisc>
<img src=$imagesurl/images/closedfold.gif border=0> <a href=leoboard.cgi>$boardname</a><br>
<img src=$imagesurl/images/bar.gif border=0 width=15 height=15><img src=$imagesurl/images/openfold.gif border=0> 用户列表
</td>
<tr>
<td valign=bottom align=right> $helpurl</td>
</tr>
</table><br>~;
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
$a = $query -> param ("a");
$buffer=~s/\&L=(\S+?)//isg;
$searchmembername = $query -> param ("searchmember");
if ($searchmembername ne "") {
$a = 0;
&searchmember}
if ($a eq '' && $buffer eq '')
{$buffer = "a=$startseite";}
else
{($buffer = "$buffer") || ($buffer = "a=$a");}
if ($buffer eq 'a=1') {&Postsortiert}
elsif ($buffer eq 'a=2') {&Topten}
elsif ($buffer eq 'a=3') {&Namensortiert}
elsif ($buffer eq 'a=4') {&datum}
elsif ($buffer eq 'a=5') {&redatum}
elsif ($buffer eq 'a=6') {&banned}
sub Namensortiert {
$query = new LBCGI;
$inpage = $query -> param ("page");
if ($inpage eq "") { $inpage = 1; }
$a = 3;
@memberarray = @cgi;
&splitting;
$Listenname = "以用户名排序";
&Tabellenanfang;
foreach $member (@cgi[$startmember ... $endmember]) {
$member =~s/ /_/g;
$member =~ tr/A-Z/a-z/;
$member =~s/_/\_/g;
$usrfile = "${lbdir}$memdir/$member.cgi";
$usrfile = "${lbdir}$memdir/old/$member.cgi" if (!(-e $usrfile));
if (-e "$usrfile") {
open(FILE, "$usrfile" );
$memberdaten = <FILE>;
close(FILE);
&Listing;
}
}
$output .= qq~</table>~;
}
sub banned {
$query = new LBCGI;
$inpage = $query -> param ("page");
if ($inpage eq "") { $inpage = 1; }
$a = 6;
@memberarray = @banned;
&splitting;
$Listenname = "监狱中的犯人";
&Tabellenanfang;
foreach $member (@banned[$startmember ... $endmember]) {
$member =~s/ /_/g;
$member =~s/_/\_/g;
$member =~ tr/A-Z/a-z/;
$usrfile = "${lbdir}$memdir/$member.cgi";
$usrfile = "${lbdir}$memdir/old/$member.cgi" if (!(-e $usrfile));
if (-e "$usrfile") {
open(FILE, "$usrfile" );
$memberdaten = <FILE>;
close(FILE);
&Listing;
}
}
$output .= qq~</table>~;
}
sub searchmember {
$output .= qq~
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
<tr>
<td>
<table cellpadding=6 cellspacing=1 border=0 width=100%>
<tr>
<td bgcolor=$miscbacktwo align=center><font color=$fontcolormisc><b>会员 $searchmembername 资料查找中 , 请稍后</b></font></td></tr>
<tr>
<td bgcolor=$miscbackone><font color=$fontcolormisc>
具体情况 :
<ul>
<li><a href="memberlist.cgi?a=4">返回用户列表</a>
<li><a href="leoboard.cgi">返回论坛首页</a>
</ul>
</tr>
</td>
</table></td></tr></table>
<meta http-equiv="refresh" content="3; url=profile.cgi?action=show&member=~ . ($uri_escape eq "no" ? $searchmembername : uri_escape($searchmembername)) . qq~">
~;
}
sub Postsortiert {
$query = new LBCGI;
$inpage = $query -> param ("page");
if ($inpage eq "") { $inpage = 1; }
$a = 1;
@memberarray = @sortiert;
&splitting;
$Listenname = "以发贴总数排序";
&Tabellenanfang;
foreach $member (@sortiert[$startmember ... $endmember]) {
$member =~s/ /_/g;
$member =~s/_/\_/g;
$member =~ tr/A-Z/a-z/;
$usrfile = "${lbdir}$memdir/$member.cgi";
$usrfile = "${lbdir}$memdir/old/$member.cgi" if (!(-e $usrfile));
if (-e "$usrfile") {
open(FILE, "$usrfile" );
$memberdaten = <FILE>;
close(FILE);
&Listing;
}
}
$output .= qq~</table>~;
}
sub Topten {
$Listenname = "发贴总数前 $topanzahl 名";
&Tabellenanfang;
@sortiert = splice(@sortiert,0,$topanzahl);
foreach $member (@sortiert) {
$member =~s/ /_/g;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -