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

📄 massmsg.cgi

📁 一个linux论坛
💻 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 + -