📄 massmsg.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=20000;
$LBCGI::DISABLE_UPLOADS = 1;
$LBCGI::HEADERS_ONCE = 1;
require "lbadmin.lib.pl";
require "data/boardinfo.cgi";
require "lb.lib.pl";
$|++;
$thisprog = "massmsg.cgi";
$query = new LBCGI;
$inmsgtitle = $query -> param('msgtitle');
$inmessage = $query -> param('message');
$action = $query -> param('action');
$insendto = $query -> param('sendto');
$inmessage = &cleaninput($inmessage);
$inmsgtitle = &cleaninput($inmsgtitle);
$inmembername = $query->cookie('adminname');
$inpassword = $query->cookie('adminpass');
$inmembername =~ s/[\a\f\n\e\0\r\t\`\~\!\@\#\$\%\^\&\*\(\)\+\=\\\{\}\;\'\:\"\,\.\/\<\>\?]//isg;
$inpassword =~ s/[\a\f\n\e\0\r\t\|\@\;\#\{\}\$]//isg;
&getadmincheck;
print header(-charset=>gb2312);
&getmember("$inmembername");
&admintitle;
if (($membercode ne "ad") || ($inpassword ne $password) || (lc($inmembername) ne lc($membername))) {
&adminlogin;
exit;
}
if ($action ne "send") {
$output .= qq~<tr><td bgcolor=#333333" colspan=2><font color=#FFFFFF>
<b>欢迎来到论坛管理中心 / 短消息广播</b></td></tr><tr><td><BR>
<B>注意:请尽量不要使用此项功能,此功能及其消耗系统资源,而且会使用户反感。</b></td></tr><tr><td>
<FORM METHOD="post" ACTION="$thisprog">
<INPUT TYPE="HIDDEN" NAME="action" VALUE="send"><BR>
<TABLE BORDER="0"><TR VALIGN="TOP"><TD>短消息标题: </td>
<TD><INPUT TYPE="TEXT" SIZE="20" NAME="msgtitle"></TD>
<TR VALIGN="TOP"><TD>接受方选择: </td><TD>
<select name="sendto" size="1">
<option value="online">所有在线用户 </option>
<option value="all" >所有注册用户 </option>
<option value="mo" >全部斑竹 </option>
<option value="cmo" >分类区斑竹 </option>
<option value="smo" >全部总斑竹 </option>
<option value="ad" >全部坛主 </option>
<option value="allmo" >所有管理员 </option>
<option value="rz" >所有认证会员 </option>
<option value="me" >所有普通会员 </option>
</select>
</td></tr><TR VALIGN="TOP"><TD>短消息内容: </td><TD>
<TEXTAREA NAME="message" COLS="50" ROWS="8"></textarea><BR><BR><center>
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="发 送">
</td></tr></table></form>
~;
print $output;
print qq~</td></tr></table></body></html>~;
exit;
}
else {
if ($inmsgtitle eq "") { $blanks = "yes"; }
if ($inmessage eq "") { $blanks = "yes"; }
&error("短消息广播&请把标题和内容填写完整。&msg") if ($blanks eq "yes");
$currenttime = time;
if ($insendto eq "all") {
open (MEMFILE, "${lbdir}data/lbmember.cgi");
@sendmemlist = <MEMFILE>;
close(MEMFILE);
}
elsif (($insendto eq "me")||($insendto eq "rz")||($insendto eq "mo")||($insendto eq "cmo")||($insendto eq "smo")||($insendto eq "ad")||($insendto eq "allmo")) {
open (MEMFILE, "${lbdir}data/lbmember.cgi");
my @sendmemlist1 = <MEMFILE>;
close(MEMFILE);
undef @sendmemlist;
foreach (@sendmemlist1) {
chomp $_;
my ($membername,$membercode,$no) = split(/\t/,$_);
push (@sendmemlist, $_) if (($membercode eq "me")&&($insendto eq "me"));
push (@sendmemlist, $_) if (($membercode eq "rz")&&($insendto eq "rz"));
push (@sendmemlist, $_) if (($membercode eq "mo")&&($insendto eq "mo"));
push (@sendmemlist, $_) if (($membercode eq "cmo")&&($insendto eq "cmo"));
push (@sendmemlist, $_) if (($membercode eq "smo")&&($insendto eq "smo"));
push (@sendmemlist, $_) if (($membercode eq "ad")&&($insendto eq "ad"));
push (@sendmemlist, $_) if ((($membercode eq "ad")||($membercode eq "smo")||($membercode eq "cmo")||($membercode eq "mo"))&&($insendto eq "allmo"));
}
}
else {
$filetoopen = "${lbdir}data/onlinedata.cgi";
&winlock($filetoopen) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
open(FILE,"$filetoopen");
flock (FILE, 2) if ($OS_USED eq "Unix");
my @sendmemlist1 = <FILE>;
close(FILE);
&winunlock($filetoopen) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
undef @sendmemlist;
foreach (@sendmemlist1) {
chomp $_;
my ($membername,$no) = split(/\t/,$_);
push (@sendmemlist, $_) if ($membername !~ /^客人/);
}
}
$totlemembers = @sendmemlist;
$inmessage = "$inmessage<BR><BR>---------------------------<BR>LB5000 由雷傲工作室荣誉出品<BR>主页:http://www.LeoBoard.com";
foreach (@sendmemlist) {
my ($thisMember,$no) = split(/\t/,$_);
$thisMember =~ s/ /\_/isg;
$thisMember =~ tr/A-Z/a-z/;
my $filetoopen = "$lbdir". "$msgdir/in/$thisMember" . "_msg.cgi";
$filetoopen = &stripMETA($filetoopen);
open (FILE, "$filetoopen");
@inboxmessages = <FILE>;
close (FILE);
open (FILE, ">$filetoopen");
print FILE "*#!&*系统短消息广播\tno\t$currenttime\t$inmsgtitle\t$inmessage\n";
foreach (@inboxmessages) {
chomp $_;
print FILE "$_\n";
}
close (FILE);
}
$output .= qq~<tr><td bgcolor=#333333" colspan=2><font color=#FFFFFF>
<b>欢迎来到论坛管理中心 / 短消息广播</b></td></tr>
<tr><td bgcolor=#FFFFFF valign=middle colspan=2>
<font color=#333333><center><b>短消息广播发送完成,共发出 $totlemembers 个消息!</b></center><br><br>
~;
print $output;
print qq~</td></tr></table></body></html>~;
exit;
}
1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -