📄 blocklist.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 {
$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/styles.cgi";
require "lb.lib.pl";
$|++; # Unbuffer the output
#############################################################
my $q = new LBCGI;
$thisprog = "blocklist.cgi";
my $action = $q->param('action');
my $deluser = $q->param('deluser');
my $adduser = $q->param('adduser');
my $inmembername = $q->param('membername');
my $inpassword = $q->param('password');
$adduser =~ s/[\a\f\n\e\0\r\t\`\~\!\@\#\$\%\^\&\*\(\)\+\=\;\\\{\}\'\:\"\,\.\/\<\>\?]//isg;
$deluser =~ s/[\a\f\n\e\0\r\t\`\~\!\@\#\$\%\^\&\*\(\)\+\=\;\\\{\}\'\:\"\,\.\/\<\>\?]//isg;
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 = "客人";
$userregistered = "no";
&loginbl;
} else {
&getmember("$inmembername");
&error("普通错误&此用户根本不存在!") if ($inpassword ne "" && $userregistered eq "no");
&error("普通错误&密码与用户名不相符,请重新登录!") if ($inpassword ne $password && $userregistered ne "no");
&action;
}
sub action {
if ($action eq "adduser") { &adduser($adduser); }
elsif ($action eq "deluser") { &deluser($deluser); }
else { &list; }
}
sub adduser {
&error("添加黑名单&自己添加自己为黑名单做什么?") if ($adduser eq $inmembername);
&getmembernolock($adduser);
if ($emailaddress) {
$memberfiletitle = $inmembername;
$memberfiletitle =~ s/ /_/g;
$memberfiletitle =~ tr/A-Z/a-z/;
$deluser =~ s/\+/ /;
$filetomake = "$lbdir" . "memblock/${memberfiletitle}.cgi";
if (-e $filetomake) {
open(FILE, "$filetomake");
@currentlist = <FILE>;
close (FILE);
}
unless (grep(/^*#!&*$adduser$/, @currentlist)) {
push (@currentlist, $adduser);
}
if (open(FILE, ">$filetomake")) {
flock(FILE, 2) if ($OS_USED eq "Unix");
foreach $user (@currentlist) {
chomp($user);
$user =~ s/^*#!&*//isg;
print FILE "*#!&*$user\n";
}
close(FILE);
}
&list;
} else {
errorbl("没有该注册用户!");
}
} ### end adduser
sub deluser {
$memberfiletitle = $inmembername;
$memberfiletitle =~ s/ /_/g;
$memberfiletitle =~ tr/A-Z/a-z/;
$deluser =~ s/\+/ /;
$filetomake = "$lbdir" . "memblock/${memberfiletitle}.cgi";
if (-e $filetomake) {
open(FILE, "$filetomake");
@currentlist = <FILE>;
close (FILE);
} else {
errorbl("你的黑名单列表为空!");
}
if (open(FILE, ">$filetomake")) {
flock(FILE, 2) if ($OS_USED eq "Unix");
foreach $user (@currentlist) {
chomp($user);
$user =~ s/^*#!&*//isg;
unless ($user eq $deluser) {
print FILE "*#!&*$user\n";
}
}
close(FILE);
}
&list;
} ### end deluser
sub list {
$output .= qq~<html>
<head>
<script type="text/javascript">
function openScript(url, width, height) {
var Win = window.open(url,"openwindow",'width=' + width + ',height=' + height + ',resizable=1,scrollbars=yes,menubar=yes,status=yes' );
}
</script>
<style>
A:visited { TEXT-DECORATION: none }
A:active { TEXT-DECORATION: none }
A:hover { TEXT-DECORATION: underline }
A:link { text-decoration: none;}
.t { LINE-HEIGHT: 1.4 }
BODY { FONT-FAMILY: 宋体; FONT-SIZE: 9pt;
SCROLLBAR-HIGHLIGHT-COLOR: buttonface;
SCROLLBAR-SHADOW-COLOR: buttonface;
SCROLLBAR-3DLIGHT-COLOR: buttonhighlight;
SCROLLBAR-TRACK-COLOR: #eeeeee;
SCROLLBAR-DARKSHADOW-COLOR: buttonshadow }
TD { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
SELECT { FONT-FAMILY: 宋体; FONT-SIZE: 9pt; }
INPUT { FONT-FAMILY: 宋体; FONT-SIZE: 9pt; height:22px; }
TEXTAREA{ FONT-FAMILY: 宋体; FONT-SIZE: 9pt; }
DIV { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
FORM { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
OPTION { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
P { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
TD { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
BR { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
</style>
<title>$inmembername - 黑名单列表</title>
</head>
<body bgcolor="#D1D9E2" alink="#333333" vlink="#333333" link="#333333" >
<center>$inmembername 的黑名单列表</center><br>
<table width=97% align=center cellspacing=0 cellpadding=1 border=0 bgcolor=#333333>
<tr><td>
<table width=100% cellspacing=0 cellpadding=4 border=0>
~;
$memberfiletitle = $inmembername;
$memberfiletitle =~ s/ /_/g;
$memberfiletitle =~ tr/A-Z/a-z/;
$filetomake = "$lbdir" . "memblock/${memberfiletitle}.cgi";
if (-e $filetomake) {
open(FILE, "$filetomake");
@currentlist = <FILE>;
close (FILE);
}
$colspant = "7";
$colspans = "5";
my $filetoopens = "$lbdir" . "data/onlinedata.cgi";
$filetoopens = &lockfilename($filetoopens);
if (!(-e "$filetoopens.lck")) {
&whosonline("$inmembername\t黑名单列表\tnone\t查看黑名单列表\t");
}
$output .= qq~
<tr>
<td bgcolor=$catback><font face="$font" color=$titlefont ><center><b>姓名</b></center></font></td>
<td bgcolor=$catback><font face="$font" color=$titlefont ><center><b>短消息</b></center></font></td>
<td bgcolor=$catback><font face="$font" color=$titlefont ><center><b>Email</b></center></font></td>
<td bgcolor=$catback><font face="$font" color=$titlefont ><center><b>ICQ</b></center></font></td>
<td bgcolor=$catback><font face="$font" color=$titlefont ><center><b>OICQ</b></center></font></td>
<td bgcolor=$catback><font face="$font" color=$titlefont ><center><b>主页</b></center></font></td>
<td bgcolor=$catback><font face="$font" color=$titlefont ><center><b>删除?</b></center></font></td>
</tr>
~;
$pmnamenumber = 0;
foreach $user (@currentlist) {
chomp $user;
$user =~ s/^*#!&*//isg;
&getmember($user);
$memname = $membername;
$memname =~ s/ /+/;
$pmname = $membername;
$pmname =~ s/ /_/;
$duser = $user;
$duser =~ s/ /+/;
$pmnamenumber++;
if ($userregistered ne "no") {
$homepage =~ s/http\:\/\///sg;
if ($homepage) { $homepage = qq~<a href="http://$homepage" target="_blank"><img src="$imagesurl/images/homepage.gif" border=0></a>~; } else { $homepage = "N/A"; }
if ($showemail eq "no"||$emailstatus eq "no"||$emailaddress eq ""||$showemail eq "msn"){
$emailaddress = "未输入" if ($$emailaddress eq "");
$emailaddress = "保密" if ($emailstatus eq "no");
$emailaddress = "保密" if ($showemail eq "no");
$emailaddress = "<a href=mailto:$emailaddress><img border=0 src=$imagesurl/images/msn.gif></a>" if ($showemail eq "msn");
}
else {$emailaddress = "<a href=mailto:$emailaddress><img border=0 src=$imagesurl/images/email.gif></a>" }
if ($icqnumber) { $icqnumber = qq~<a href="javascript:openScript('misc.cgi?action=icq&UIN=$icqnumber',450,300)"><img src=$imagesurl/images/icq.gif border=0></a>~; } else { $icqnumber = "N/A"; }
if ($oicqnumber) { $oicqnumber = qq~<a href="javascript:openScript('http://search.tencent.com/cgi-bin/friend/user_show_info?ln=$oicqnumber',450,200)"><img src="$imagesurl/images/oicq.gif" border=0></a>~; } else { $oicqnumber = "N/A"; }
my $membernametemp = "\_$membername\_";
if ($onlineuserlist =~ /$membernametemp/i) { $onlineinfo = "该用户目前在线";$onlinepic="online1.gif"; } else { $onlineinfo = "该用户目前不在线";$onlinepic="offline1.gif"; }
if (($mymembercode eq "ad")&&($onlineuserlisthidden =~ /$membernametemp/i)) { $onlineinfo = "该用户目前处于隐身状态";$onlinepic="onlinehidden.gif"; }
$online = qq~<IMG SRC=$imagesurl/images/$onlinepic width=15 alt=$onlineinfo align=absmiddle>~;
$output .=qq~
<tr>
<td bgcolor=$miscbackone>$online <a href="profile.cgi?action=show&member=~ . ($uri_escape eq "no" ? $pmname : uri_escape($pmname)) . qq~" target=_blank>$user</a></td>
<td bgcolor=$miscbackone><center><a href=# onClick="javascript:openScript('messanger.cgi?action=new&touser=~ . ($uri_escape eq "no" ? $pmname : uri_escape($pmname)) . qq~',600,400)"><img src="$imagesurl/images/message.gif" border=0></a></center></td>
<td bgcolor=$miscbackone><center>$emailaddress</center></td>
<td bgcolor=$miscbackone><center>$icqnumber</center></td>
<td bgcolor=$miscbackone><center>$oicqnumber</center></td>
<td bgcolor=$miscbackone><center>$homepage</center></td>
<td bgcolor=$miscbackone><center><form action=blocklist.cgi method=post name=pm$pmnamenumber><input type=hidden name=action value=deluser><input type=hidden name=deluser value=$duser><a href="javascript:document.pm$pmnamenumber.submit()">删除</a></center></td></form></tr>
~;
}
else {
$output .=qq~
<tr>
<td bgcolor=$miscbackone>$user (未注册)</td>
<td bgcolor=$miscbackone></td>
<td bgcolor=$miscbackone></td>
<td bgcolor=$miscbackone></td>
<td bgcolor=$miscbackone></td>
<td bgcolor=$miscbackone></td>
<td bgcolor=$miscbackone><center><form action=blocklist.cgi method=post name=pm$pmnamenumber><input type=hidden name=action value=deluser><input type=hidden name=deluser value=$duser><a href="javascript:document.pm$pmnamenumber.submit()">删除</a></center></td></form></tr>
~;
}
}
$output .= qq~
<tr>
<form action=blocklist.cgi method=post name=adduser><input type=hidden name=action value=adduser><td bgcolor=$miscbackone><font color=black >黑名单姓名:</td><td colspan=$colspans bgcolor=$miscbackone><input type=text size=20 name=adduser></td><td bgcolor=$miscbackone><center><a href="javascript:document.adduser.submit()">增加</a></center></td></form>
<tr><td bgcolor=$miscbackone colspan=$colspant><center><font color=black >输入你要想增加的黑名单姓名,点击增加确认操作!<br><br><a href=javascript:top.close();>[关闭窗口]</a></center></td></tr>
</table></td></tr>
</table>
</body>
</html>
~;
print header(-charset=>gb2312);
print "$output";
} ### end of list
sub errorbl {
$errormsg = shift;
$output = qq~
<html>
<head>
<title>$inmembername - 黑名单列表 >> 错误</title>
<meta http-equiv="refresh" content="30;URL=blocklist.cgi">
<style>
A:visited { TEXT-DECORATION: none }
A:active { TEXT-DECORATION: none }
A:hover { TEXT-DECORATION: underline }
A:link { text-decoration: none;}
.t { LINE-HEIGHT: 1.4 }
BODY { FONT-FAMILY: 宋体; FONT-SIZE: 9pt;
SCROLLBAR-HIGHLIGHT-COLOR: buttonface;
SCROLLBAR-SHADOW-COLOR: buttonface;
SCROLLBAR-3DLIGHT-COLOR: buttonhighlight;
SCROLLBAR-TRACK-COLOR: #eeeeee;
SCROLLBAR-DARKSHADOW-COLOR: buttonshadow }
TD { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
SELECT { FONT-FAMILY: 宋体; FONT-SIZE: 9pt; }
INPUT { FONT-FAMILY: 宋体; FONT-SIZE: 9pt; height:22px; }
TEXTAREA{ FONT-FAMILY: 宋体; FONT-SIZE: 9pt; }
DIV { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
FORM { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
OPTION { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
P { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
TD { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
BR { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
</style>
</head>
<body bgcolor="#D1D9E2" alink="#333333" vlink="#333333" link="#333333">
<br>
<center>黑名单列表错误</center><br><br>
<font color=red>
<center>
<b>$errormsg</b>
</center>
</font>
<br><br>
<center><font color=$fontcolormisc> << <a href="javascript:history.go(-1)">返回上一页</a></center>
</body>
</html>
~;
print header(-charset=>gb2312);
print "$output";
}
sub loginbl {
$output .= qq~
<head>
<title>黑名单列表登录</title>
<center>黑名单列表登录</center><br>
<meta http-equiv="refresh" content="30">
<style>
A:visited { TEXT-DECORATION: none }
A:active { TEXT-DECORATION: none }
A:hover { TEXT-DECORATION: underline }
A:link { text-decoration: none;}
.t { LINE-HEIGHT: 1.4 }
BODY { FONT-FAMILY: 宋体; FONT-SIZE: 9pt;
SCROLLBAR-HIGHLIGHT-COLOR: buttonface;
SCROLLBAR-SHADOW-COLOR: buttonface;
SCROLLBAR-3DLIGHT-COLOR: buttonhighlight;
SCROLLBAR-TRACK-COLOR: #eeeeee;
SCROLLBAR-DARKSHADOW-COLOR: buttonshadow }
TD { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
SELECT { FONT-FAMILY: 宋体; FONT-SIZE: 9pt; }
INPUT { FONT-FAMILY: 宋体; FONT-SIZE: 9pt; height:22px; }
TEXTAREA{ FONT-FAMILY: 宋体; FONT-SIZE: 9pt; }
DIV { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
FORM { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
OPTION { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
P { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
TD { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
BR { FONT-FAMILY: 宋体; FONT-SIZE: 9pt }
</style>
</head>
<body bgcolor="#D1D9E2" alink="#333333" vlink="#333333" link="#333333">
<font color=$titlefont>
<center>
你必须登录才能察看你的黑名单列表<br><a href=loginout.cgi target=_blank>点这儿登录</a>
</center>
</font>
</body>
</html>
~;
print header(-charset=>gb2312);
print "$output";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -