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

📄 lb.lib.pl

📁 一个linux论坛
💻 PL
📖 第 1 页 / 共 4 页
字号:
#############################################################
#  LeoBoard ver.5000 / LB5000 / 雷傲超级论坛 ver.5000
#
#  版权所有: 雷傲工作室(原蓝宝石软件工作室)
#
#  制作人  : 山鹰糊 (Shining Hu)
#            花无缺 (Ifairy Han)
#
#  主页地址:     http://www.CGIer.com/      CGI 编程者之家
#	        http://www.LeoBoard.com/   雷傲论坛支持主页
#	        http://www.leoBBS.com/     本论坛直通车
#
#############################################################
$versionnumber = "LB5000MX 2.00";
$maxweiwang = 5 if (($maxweiwang < 5)||($maxweiwang eq ""));
$signaturesplit="aShDFSiod"; 
$wordfilterto = " *** ";
$ENV{'REMOTE_ADDR'} = $ENV{'HTTP_X_FORWARDED_FOR'} if (($ENV{'REMOTE_ADDR'} eq "127.0.0.1")&&($ENV{'HTTP_X_FORWARDED_FOR'} ne "")&&($ENV{'HTTP_X_FORWARDED_FOR'} ne "unknow"));

opendir (DIRS, "$lbdir");
my @files2 = readdir(DIRS);
closedir (DIRS);
my @memdir = grep(/^members/i, @files2);
$memdir = $memdir[0];
my @msgdir = grep(/^messages/i, @files2);
$msgdir = $msgdir[0];
undef @files2; undef @memdir; undef @msgdir;

sub temppost {
    my $tmp=shift;
    study($tmp);
    $tmp =~ s/\#Moderation Mode//isg;
    $tmp =~ s/\[quote\](.*)\[\/quote\]//isg;
    $tmp =~ s/\[post=(.+?)\](.+?)\[\/post\]//isg;
    $tmp =~ s/\[hide\](.+?)\[\/hide\]//isg;
    $tmp =~ s/\[(.+?)\]//isg;
    $tmp =~ s/(http|https|ftp):\/\/(.*?)\.(png|jpg|jpeg|bmp|gif|swf)//isg;
    $tmp =~ s/<(.|\n)+?>//isg;
    $tmp =~ s/\:.{0,20}\://isg;
    $tmp =~ s/[\a\f\n\e\0\r\t]//isg;
    $tmp =~ s/  / /isg;
    $tmp =~ s/^( )+//isg;
    return $tmp;
}

sub dofilter {
    my $infiltermessage=shift;
    my $tempinfilter = $infiltermessage;
    my $keepinfiltermessage=&postwordfilter($tempinfilter);
    if ($tempinfilter ne $keepinfiltermessage) { &error("贴子有问题&你所发表的贴子中也许包含了一些本论坛不允许发布的言论,请仔细检查后,重新发布,谢谢!"); }
    $tempinfilter =~ s/\&nbsp\;//ig;
    $tempinfilter =~ s/\<.+?\>//ig;
    $tempinfilter =~ s/\[.+?\]//g;
    $tempinfilter =~ s/ | |\*\_|\?|\+|\/|\\|\.//g;
    my $keepinfiltermessage=&postwordfilter($tempinfilter);
    if ($tempinfilter ne $keepinfiltermessage) { &error("贴子有问题&你所发表的贴子中也许包含了一些本论坛不允许发布的言论,请仔细检查后,重新发布,谢谢!"); }
    return $infiltermessage;
}

sub postwordfilter {
    my $infiltermessage=shift;
    my $keepinfiltermessage=$infiltermessage;
    &badwordfile if ($wordfilter eq "");
    if ($wordfilter) { $infiltermessage =~ s/$wordfilter/$wordfilterto/isg; }
    return $infiltermessage;
}

sub badwordfile {
    if (open (FILE, "${lbdir}data/wordfilter.cgi")) {
	$wordfilter = <FILE>;
	close (FILE);
	$wordfilter=~ s/(\.|\*|\(|\)|\||\\|\/|\?|\+|\[|\])/\\$1/ig;
	$wordfilter=~ s/\t/\|/ig;
	$wordfilter=~ s/\|\|/\|/ig;
	$wordfilter=~ s/^\|//ig;
	$wordfilter=~ s/\|$//ig;
    }
    else { $wordfilter = "";}
}

sub ipbanned {
    if (open(FILE, "${lbdir}data/ipbans.cgi")) {
            my @term_bannedmembers = <FILE>;
            close(FILE);
            my @term_vipmembers = grep(/^[0-9]/, @term_bannedmembers);
            @term_bannedmembers = grep(/^\-/, @term_bannedmembers);
            my $ipallow = "yes";

            my $ipaddress  = $ENV{"REMOTE_ADDR"};
            $trueipaddress = $ENV{"HTTP_CLIENT_IP"};
            $trueipaddress = $ENV{"HTTP_X_FORWARDED_FOR"} if ($trueipaddress eq "" || $trueipaddress eq "unknown");
            $trueipaddress = $ipaddress if ($trueipaddress eq "" || $trueipaddress eq "unknown");

            foreach (@term_bannedmembers) {
                s/\r//sg;
                s/^\-//sg;
                chomp;
                next if ($_ eq "");
                if ($trueipaddress =~ /^$_/ || $ipaddress =~ /^$_/) {
                    $ipallow = $_;
                    last;
                }
            }
            foreach (@term_vipmembers) {
                s/\r//sg;
                chomp;
                next if ($_ eq "");
                if ($trueipaddress =~ /^$_/ || $ipaddress =~ /^$_/) {
                    $ipallow = "yes";
                    last;
                }
            }
            &error(" IP 被禁止&由于你没遵守本站规定!你的 IP ($ipallow) 被禁止!如有疑问,请联系管理员。") if ($ipallow ne "yes");
    }
    $inmembername = $query->cookie("amembernamecookie") if ($inmembername eq "");
    $inmembername =~ s/[\a\f\n\e\0\r\t\`\~\!\@\#\$\%\^\&\*\(\)\+\=\\\{\}\;\'\:\"\,\.\/\<\>\?]//isg;
    if (($inmembername ne "")&&($inmembername ne "客人")) {
	my $term_idfiletoopen ="$lbdir" . "data/idbans.cgi";
	if (open(FILE,"$term_idfiletoopen")) {
           $term_idbannedmembers = <FILE>;  
           close(FILE);
           $term_idbannedmembers =~ s/\t/\_/isg;
           $term_idbannedmembers = "\_$term_idbannedmembers\_";
           $term_idbannedmembers =~ s/\_\_/\_/isg;
	   $term_idbannedmembers =~ s/(\.|\*|\(|\)|\||\\|\/|\?|\+|\[|\])/\\$1/ig;
           $tempinmembername = "\_$inmembername\_";
           if ($term_idbannedmembers =~ /$tempinmembername/i) { &error(" ID 被禁止&由于你没遵守本站规定!你的 ID ($inmembername) 被禁止!如有疑问,请联系管理员。"); }
	}
    }
}

sub title {
    my $newmail = "<p>";
    if (($mainoff == 1)||($mainonoff == 1)) { &InMaintenance; }
    if ($inmembername eq "" || $inmembername eq "客人") {
	$inmembername = "客人";
	$loggedinas = qq~<b>客人</b>: <a href="loginout.cgi?forum=$inforum" title=从这里开始进入论坛>登录</a> | <a href="register.cgi?forum=$inforum" title=注册了才能发表文章哦!>注册</a> | <a href="profile.cgi?action=lostpassword" title=好惨啊,忘记密码登录不了 style="cursor:help">忘记密码</a> | <a href="whosonline.cgi" title=看看有谁在线……>在线</a> | <a href="search.cgi?forum=$inforum" title=按关键字、作者来搜寻>搜索</a> | <span style="cursor:hand" onClick="javascript:openScript('help.cgi',500,400)" title=常见问题的解答>帮助</span>~;
	if (($regaccess eq "on")&&($thisprog ne "loginout.cgi")&&($thisprog ne "register.cgi")&&($thisprog ne "profile.cgi")&&($thisprog ne "viewavatars.cgi")) {
	    print header(-cookie=>[$namecookie, $passcookie], -charset=>gb2312);
	    print "<script language='javascript'>document.location = 'loginout.cgi?forum=$inforum'</script>";
	    exit;
	}
	if(($regpuonoff eq "ontop")&&($thisprog eq "leoboard.cgi")||($regpuonoff eq "oneach")&&($thisprog ne "loginout.cgi")&&($thisprog ne "register.cgi")) {
	    if ($boardlogo =~ /\.swf$/i) {$forumgraphic1 = 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 {$forumgraphic1 = qq~<img src=$imagesurl/myimages/$boardlogo border=0>~};
            $popupmsg = qq~请先注册以避免此视窗出现~ if(!$popupmsg);
            $popupmsg = &HTML("$popupmsg");
	    $loggedinas .=qq~<script language="JavaScript" src="$imagesurl/images/lbpopup.js"></script><div id="lbplocation" style="position: absolute;visibility: hidden;height: 1;width: 1;top: 100;left: 50"><table width=520 height=320 bgcolor=$titleborder style="border: 1 outset $miscbackone"><tr><td><table width=490 height=290 bgcolor=$menubackground align=center style="border: 1 inset $miscbacktwo"><tr><td align=center valign=middle><a href=leoboard.cgi>$forumgraphic1</a><br>$popupmsg<br><br><b><a href=register.cgi title=按这里进行注册><U>注 册</U></a>  <a href=loginout.cgi?forum=$inforum title=从这里开始进入论坛><U>登 入</U></a></b><p>(此视窗将于 5 秒后自动关闭)</td></tr></table></td></tr></table></div>~;
	}
    }
    else {
    	if (($thisprog eq "leoboard.cgi")||($thisprog eq "forums.cgi")||($thisprog eq "topic.cgi")) {
	    my $memberfilename = $inmembername;
	    $memberfilename =~ s/ /\_/g;
	    $memberfilename =~ tr/A-Z/a-z/;
	    my $filetoopen = "$lbdir". "$msgdir/in/$memberfilename" . "_msg.cgi";
	    open (MSGIN, "$filetoopen");
	    @allmessages = <MSGIN>;
	    close (MSGIN);

   	    my @newmessages=grep(/^(.+)\tno\t/,@allmessages);
   	    $unread = @newmessages;

	    my $intanchumsg = $query->cookie("tanchumsg");
	    my $popnew = qq~<script>if (confirm("你有新的短消息,是否打开收件箱查看?")) openScript("messanger.cgi?action=inbox",420,320);</script>~ if ((($newmsgpop eq "on")||($newmsgpop eq "popup"))&&($intanchumsg eq ""));
	    my $lightnew = qq~<script language="JavaScript">pmBox.bgColor='Lightblue';setInterval("Timer()", 500);x=1;function Timer(){set=1;if(x==0 && set==1){pmBox.bgColor='Lightblue';x=1;set=0;}if(x==1 && set==1){pmBox.bgColor='';x=0;set=0;}}</script>~ if ((($newmsgpop eq "on")||($newmsgpop eq "light")));
	    $newmail = qq(<table width=$tablewidth cellpadding=2 cellspacing=0 align=center><tr><td width="*"></td><td align=right id="pmBox" width=215><bgsound src=$imagesurl/images/mail.wav border=0>$lightnew$popnew<span style="cursor:hand" onClick="javascript:openScript('messanger.cgi?action=inbox',420,320)"><img src=$imagesurl/images/newmail.gif border=0><font color=$fonthighlight>你有 <B>$unread</B> 条新的短信息,请注意查收</font></span></td></tr></table>) if $unread;
	}
	$loggedinas = qq~$inmembername:<a href=loginout.cgi?forum=$inforum>重登录</a> | <span style="cursor:hand" onClick="javascript:openScript('messanger.cgi?action=inbox',420,320)" title=悄悄话短讯息中心>消息</span> | <span style="cursor:hand" onClick="javascript:openScript('friendlist.cgi',420,320)">好友</span> | <a href=profile.cgi?action=modify title=编辑您的个人资料>资料</a> | <a href=search.cgi?forum=$inforum title=按关键字、作者来搜寻>搜索</a> | <a href=whosonline.cgi title=看看有谁在线……>在线</a> | <span style="cursor:hand" onClick="javascript:openScript('help.cgi',500,400)" title=常见问题的解答>帮助</span> | <a href=loginout.cgi?action=logout title=在公众的地方上网记得要按退出哦><font color=$fonthighlight>退出</font></a>&nbsp;~;
    }
    $loggedinas .= qq~| <a href=admincenter.cgi target=_blank>管理中心</a>~ if (($membercode eq "ad")||($membercode eq "smo"));

    if ($menubackpic ne "") { $menubackpic = "background=$imagesurl/myimages/$menubackpic"; }
    $output = qq~<table width=$tablewidth align=center cellspacing=0 cellpadding=1 border=0 bgcolor=$titleborder><tr><td><table width=100% cellspacing=0 cellpadding=4 border=0><tr><td bgcolor=$menubackground $menubackpic><font color=$menufontcolor>>> 欢迎您,$loggedinas </td><td bgcolor=$menubackground align=right $menubackpic><a href=$homeurl target=_blank><img src=$imagesurl/images/gohome.gif width=48 height=16 border=0></a>&nbsp;</td></tr></table></td></tr></table>$newmail~;
    $output .= qq~<base onmouseover="window.status='$statusbar';return true">~ if ($statusbar ne "");
    if ($forumlastvisit) {
	my $fulldate  = &fulldatetime($forumlastvisit+$timedifferencevalue*3600+$timezone*3600);
	$lastvisitdata = qq~ 最近访问论坛时间: $fulldate~;
    }
    else { $lastvisitdata = qq~>> $forumname欢迎您的到来 <<~; }
    $uservisitdata = qq~<tr><td valign=bottom align=right><font color=$menufontcolor><a href=forums.cgi?forum=$inforum&action=resetposts>标记论坛所有内容为已读</a>  <img src=$imagesurl/images/$help_blogo border=0 style="cursor:hand" onClick="javascript:openScript('help.cgi?helpon=阅读标记',500,400)">&nbsp;<br>$lastvisitdata&nbsp;</td></tr>~;
}

sub mischeader {
    local($misctype) = @_;
    my $filetoopen = "${lbdir}forum$inforum/foruminfo.cgi";
#    &winlock($filetoopen) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
    open(FILE, "$filetoopen");
#    flock (FILE, 1) if ($OS_USED eq "Unix");
    my $forums = <FILE>;
    close(FILE);
#    &winunlock($filetoopen) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
    ($forumid, $category, $categoryplace, $forumname, $forumdescription, $forummoderator ,$htmlstate ,$idmbcodestate ,$privateforum, $startnewthreads ,$lastposter ,$lastposttime, $threads, $posts, $forumgraphic, $ratings, $misc,$forumpass,$hiddenforum,$indexforum,$teamlogo,$teamurl, $fgwidth, $fgheight, $miscadd3, $miscadd4, $miscad5) = split(/\t/,$forums);

    if ($forumgraphic) {
        if ($forumgraphic =~ /\.swf$/i) {$forumgraphic1 = qq~<PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><embed src=$imagesurl/myimages/$forumgraphic quality=high width=$fgwidth height=$fgheight pluginspage="http:\/\/www.macromedia.com\/shockwave\/download\/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application\/x-shockwave-flash"><\/embed>~}
            else {$forumgraphic1 = qq~<img src=$imagesurl/myimages/$forumgraphic border=0>~};
    } else {
        if ($boardlogo =~ /\.swf$/i) {$forumgraphic1 = 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 {$forumgraphic1 = qq~<img src=$imagesurl/myimages/$boardlogo>~};
    }

    &title;
if($category=~/childforum-[0-9]+/){
$tempforumno=$category;
$tempforumno=~s/childforum-//;
    $filetoopen = "${lbdir}forum$tempforumno/foruminfo.cgi";
    open(FILE, "$filetoopen");
    $forums = <FILE>;
    close(FILE);
    (undef, undef, undef, $tempforumname, undef) = split(/\t/,$forums);
    $addlink=qq~<br> <img src=$imagesurl/images/bar.gif width=15 height=15><img src=$imagesurl/images/closedfold.gif width=14 height=14> <a href="forums.cgi?forum=$tempforumno">$tempforumname</a>~;
    $addspace=" ";
}
    $output .= qq~<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth align=center><tr><td width=30% rowspan=2 valign=top>$forumgraphic1</td><td valign=top>~;
    if ($indexforum ne "no") { $output .= qq~<font color=$fontcolormisc> <img src=$imagesurl/images/closedfold.gif width=15 height=11> <a href=leoboard.cgi>$boardname</a>$addlink<br>$addspace <img src=$imagesurl/images/bar.gif width=15 height=15><img src=$imagesurl/images/closedfold.gif width=15 height=11> <a href=forums.cgi?forum=$inforum>$forumname</a><br>$addspace   <img src=$imagesurl/images/bar.gif width=15 height=15><img src=$imagesurl/images/openfold.gif width=15 height=11> $misctype~; }
                        else { $output .= qq~<font color=$fontcolormisc><img src=$imagesurl/images/closedfold.gif width=15 height=11> <a href=forums.cgi?forum=$inforum>$forumname</a><br><img src=$imagesurl/images/bar.gif width=15 height=15><img src=$imagesurl/images/openfold.gif width=15 height=11> $misctype~; }
    $output .= qq~</td></tr></table><p>~;
}

sub getoneforum {
        my $inforum = shift;
        open(FILE, "${lbdir}forum${inforum}/foruminfo.cgi");
        my $forums = <FILE>;
        close(FILE);
        ($forumid, $category, $categoryplace, $forumname, $forumdescription, $forummoderator, $htmlstate, $idmbcodestate, $privateforum, $startnewthreads, $lastposter, $lastposttime, $threads, $posts, $forumgraphic, $ratings, $misc, $forumpass, $hiddenforum, $indexforum, $teamlogo, $teamurl, $fgwidth, $fgheight, $miscadd3, $miscadd4, $miscad5) = split(/\t/, $forums);

        #父论坛斑竹继承
        if ($category =~ /childforum-[0-9]+/)
        {
                my $tempforumno = $category;
                $tempforumno =~ s/childforum-//;
                open(FILE, "${lbdir}forum${tempforumno}/foruminfo.cgi");
                my $forums = <FILE>;
                close(FILE);
                (undef, undef, undef, undef, undef, my $fmod, undef) = split(/\t/, $forums);
                $forummoderator .= ",$fmod";
        }

        #分区版主获得
        if (open(CATEFILE, "${lbdir}boarddata/catemod${categoryplace}.cgi"))
        {
                my $catemods = <CATEFILE>;
                close(CATEFILE);
                chomp($catemods);
                $forummoderator .= ",$catemods";
        }

        $forummoderator =~ s/\, /\,/gi;
        $forummoderator =~ s/ \,/\,/gi;
        $forummoderator =~ s/\,\,/\,/gi;
        $forummoderator =~ s/\,$//gi;
        $forummoderator =~ s/^\,//gi;
        $forummodnamestemp = ",$forummoderator,";
        my $tempinmembername = ",$inmembername,";
        $inmembmod = $forummodnamestemp =~ /$tempinmembername/i || (($membercode eq "cmo" || $membercode eq "mo") && ($forummodnamestemp =~ /,全体版主,/ || $forummodnamestemp =~ /,全体斑竹,/)) ? "yes" : "no";
        return;
}

sub moderator {
        my $inforum = shift;
        if ($#forums < 1) {
                my $filetoopen = "${lbdir}data/allforums.cgi";
                &winlock($filetoopen) if ($OS_USED eq "Nt");
                open(FILE, $filetoopen);
                flock(FILE, 1) if ($OS_USED eq "Unix");
                @forums = <FILE>;
                close(FILE);
                &winunlock($filetoopen) if ($OS_USED eq "Nt");
        }
        my @thisforums = grep(/^$inforum\t/, @forums);
        $inmembmod = "no";

        ($forumid, $category, $categoryplace, $forumname, $forumdescription, $forummoderator, $htmlstate, $idmbcodestate, $privateforum, $startnewthreads, $lastposter, $lastposttime, $threads, $posts, $forumgraphic, $ratings, $misc, $forumpass, $hiddenforum, $indexforum, $teamlogo, $teamurl, $fgwidth, $fgheight, $miscadd3, $miscadd4, $miscad5) = split(/\t/, $thisforums[0]);
        $forummoderator =~ s/\,\,/\,/ig;
        $forummoderator =~ s/\, /\,/ig;
        $forummoderator =~ s/ \,/\,/ig;
        $forummoderator =~ s/\,$//ig;
        $forummoderator =~ s/^\,//ig;
        my @forummodnames = split(/\,/, $forummoderator);
    
        #父论坛斑竹继承

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -