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

📄 flashbbs.cgi

📁 为了下载我没有办法
💻 CGI
📖 第 1 页 / 共 2 页
字号:
#!/usr/bin/perl
# //////////////////////////
# //      设定开始。      //
# //////////////////////////
# -------------------------
# 讨论板文章记录数设定。
# -------------------------
$max_size = 99 *1024;           # 记事削除开始记录(约n 最低 1500)
$max_tree = 30;                 # 设定多少篇文章为一页。
$max_msg = 6000;                # 文章内容最大字数
$new_kiji = 10;                 # 最新文章[NEW]数目
# --------------------------
# 讨论板管理者资料。
# --------------------------
$admin_name = '72小时';           # 管理者名字。
$admin_email = 'datery@sina.com';              # 管理者Email。
# --------------------------
# 
# --------------------------
$title = "论坛";     # 讨论板的<title>文字
$body = '<BODY TEXT="#000000" LINK="#8080ff" VLINK="#ff8080" ALINK="#ff80c0" BGCOLOR="#ffffff">'; # <BODY> 设定
$backurl = "../";                   # 离开讨论板URL
$date = "mon/day hour:min";    # 时间显示格式
$time="-8";                         # 调整时差,若比本地慢12小时,则输入+12,若比本地快12小时,则输入-12
$date_type = 1;                     # 时间显示设定
                                    # 0:不显示 1:显示(时分秒) 2:显示(全部)
$em_color           = "#000000";    # 显示时间颜色
$kiji_title_color   = "#000000";    # 主题区文字颜色
$kiji_title_bgcolor = "#ffe680";    # 文章主题背景颜色
$form_bgcolor       = "#CED1B5";    # 发言表单背景颜色
$res_color          = "#444499";    # 颜色
$gif_allnews  = '../all_news.gif';     # 标准选择用的 GIF IMAGE
$gif_news     = '../news.gif';         # 标准选择用的 GIF IMAGE
$gif_new_news = '../new_news.gif';     # 最新文章用的 GIF IMAGE
$gif_space    = '../space.gif';        # 透明的 GIF IMAGE
$gif_width = 20;                    # GIF IMAGE 的横度
$gif_height = 14;                   # GIF IMAGE 的高度
$tree_width = 30;                   # Tree Width
$html_title=<<"_EOF_";              # HTML 设定(标题)
<CENTER>
<img border=0 src="http://ads.51.net/cgi-bin/getimage.cgi?AD=domain" width=468 height=60>
</CENTER><P>
_EOF_
$html_info=<<"_EOF_";               # HTML 设定 (欢迎)
<CENTER>欢迎大家发表问题</CENTER>
<P>
_EOF_
# --------------------------------
$base_url = "";     # 拒绝那 URL (http://~) 的连结发表文章
$cookie_name = 'fbbspro';           # COOKIE名
$logfile   = 'flashbbs.log';      # 记录文章内容档      (URL路径)
$countfile = 'flashbbs.cnt';      # 计算主题数目档      (URL路径)
$lock1     = 'fbbs1.lock';        # 产生锁住文章档(1)   (URL路径)
$lock2     = 'fbbs2.lock';        # 产生锁住文章档(2)   (URL路径)
$lock_flag = 0;                     # 锁住文章 1:使用 0:不使用
# ////////////////////////////////
# //         设定完了。         //
# ////////////////////////////////
# $ID = $FORM{'id'};
&read_form;
&get_cookie;
&check_cookie;
@logs = &read_file($logfile);
if ($FORM{'md'} eq 'reg') { &regist; }
elsif ($FORM{'md'} eq 'del') { &delete; }
elsif ($FORM{'md'} eq 'viw') { &view; }
elsif ($FORM{'md'} eq 'new') {
    &html_header("加入主题");print"<HR width=80\% color=ffcc00>\n";&html_form('root');
}
elsif ($FORM{'md'} eq 'set') { &set; }
elsif ($FORM{'md'} eq 'num') { &number; }
else { &ichiran; }
&html_footer;
exit 0;
# [部分表示 ]
sub html_header {
    local($sub_title) = $_[0];
    local($font_size) = ($COOKIE{'font'} > 0) + 3;
    print "Content-type: text/html\n\n";
    print<<"_EOF_";
<HTML><HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META NAME="KeyWord" CONTENT="FlasH BBS Pro">
<TITLE>$title [$sub_title]</TITLE>
</HEAD>
$body
<BASEFONT SIZE=$font_size FACE="新细明体"><TT>
$html_title
<CENTER>
[
 <A HREF="flashbbs.cgi?id=$ID">回讨论板</A> / <A HREF="flashbbs.cgi?id=$ID&md=num">最新文章</A> / <A HREF="flashbbs.cgi?id=$ID&md=new">加入主题</A> / <A HREF="fbeditor.cgi?id=$ID">管理用</A>
]
</CENTER><P>
_EOF_
}
# [ 著作权表示 ]
sub html_footer {
    print<<"_EOF_";
<HR color=ffcc00>
<DIV ALIGN="center"><TT>
<!-- 管理者表示 -->
讨论板管理者 <A HREF="mailto:$admin_email">$admin_name</A> :
<!-- 著作权表示 (不可删除。) -->
版权所有:<A HREF="mailto:datery\@sina.com">72小时</a>
</TT></DIV>
</TT></BASEFONT>
</BODY></HTML>
_EOF_
}
# [ 回讨论板 ]
sub ichiran {
    &set_cookie;
    &html_header("讨论板");
    $count = (&read_file($countfile))[0];
    $tree = $COOKIE{'tree'};
    if ($tree > @logs) { $tree = 0; }
    if (!$tree) { $tree = 0; }
    $tree = int($tree/$max_tree)*$max_tree;
    print<<"_EOF_";
$html_info
<CENTER>
<TABLE>
<FORM ACTION="flashbbs.cgi">
<INPUT TYPE="hidden" NAME="id" VALUE="$ID">
<INPUT TYPE="hidden" NAME="md" VALUE="new">
<TH><INPUT TYPE="submit" VALUE="加入主题" style=\"height:23px;background-color:#FFCC00;border:1 solid black\"> </TH>
</FORM>
<FORM ACTION="flashbbs.cgi" METHOD="post">
<INPUT TYPE="hidden" NAME="id" VALUE="$ID">
<TH>
<SELECT NAME="font" style=\"background-color:#FFF9CA;border:1 solid black\">
_EOF_
    if (!$COOKIE{'font'}) {
        print"<OPTION VALUE=\"0\" SELECTED>标准文字\n";
        print"<OPTION VALUE=\"1\">扩大文字\n";
    } else {
        print"<OPTION VALUE=\"0\">标准文字\n";
        print"<OPTION VALUE=\"1\" SELECTED>扩大文字\n";
    }
    print<<"_EOF_";
</SELECT>
</TH><TH>
<SELECT NAME="sort" style=\"background-color:#FFF9CA;border:1 solid black\">
_EOF_
    if (!$COOKIE{'sort'}) {
       print"<OPTION VALUE=\"0\" SELECTED>时间顺序\n";
        print"<OPTION VALUE=\"1\">主题顺序\n";
    } else {
        print"<OPTION VALUE=\"0\">时间顺序\n";
        print"<OPTION VALUE=\"1\" SELECTED>主题顺序\n";
        @logs = reverse(sort(@logs));
    }
    print<<"_EOF_";
</SELECT>
</TH><TH>
<SELECT NAME="tree" style=\"background-color:#FFF9CA;border:1 solid black\">
_EOF_
    for ($i=0;$i<@logs;$i+=$max_tree) {
        $j=$i/$max_tree+1;
        if ($tree == $i) {
           print" <OPTION VALUE=\"$i\" SELECTED>第$j页\n";
        } else {
            print" <OPTION VALUE=\"$i\">第$j页\n";
        }
    }
    print<<"_EOF_";
</SELECT>
</TH><TH>
<INPUT TYPE="submit" VALUE="确定" style=\"height:23px;background-color:#FFCC00;border:1 solid black\">
</TH>
</FORM>
</TABLE>
</CENTER>
_EOF_
    print"<PRE>\n";
    $end_tree = $tree + $max_tree;
    if ($end_tree > @logs) { $end_tree = @logs; }
    for ($i=$tree;$i<$end_tree;$i++) {
        print"<HR color=ffcc00>";
        @datas = &divide_log($logs[$i]);
        foreach (@datas) {
            local($no,$res,$lx,$tn,$title,$name,$email,$date,$act) = &divide_data($_);
            if ($res eq 'root') {
                print "<A HREF=\"flashbbs.cgi?id=$ID&md=set&tn=$tn\"><IMG SRC=\"$gif_allnews\" WIDTH=$gif_width HEIGHT=$gif_height BORDER=0></A>";
            } else {
                local($space_width) = $gif_width+$tree_width*$lx;
                print "<IMG SRC=\"$gif_space\" WIDTH=$space_width HEIGHT=$gif_height>";
            }
            print "<A HREF=\"flashbbs.cgi?id=$ID&md=viw&no=$no&tn=$tn\">";
            if ($no > $count - $new_kiji) {
                print "<IMG SRC=\"$gif_new_news\" WIDTH=$gif_width HEIGHT=$gif_height BORDER=0>";
            } else {
                print "<IMG SRC=\"$gif_news\" WIDTH=$gif_width HEIGHT=$gif_height BORDER=0>";
            }
            print "$title</A> : ";
            if ($COOKIE{'name'} eq $name) {
                print "<B>$name</B>";
            } else { print $name; }
            print " <FONT COLOR=\"$em_color\">($date)</FONT>\n";
        }
    }
    print"</PRE>\n";
}
# [ 个别记事内容]
sub view {
    &html_header("文章($FORM{'no'})");
    @kiji_datas = &divide_log(&search_no2data($FORM{'tn'},@logs));
    $kiji_data = &search_no2data($FORM{'no'},@kiji_datas);

    print"<HR width=80\% color=ffcc00>\n";
    &kiji_view($kiji_data);
    print"<HR width=80\% color=ffcc00>\n";
    local($no,$rq_res,$lx,$tn,$title,$name,$email,$date,$rq_act,$file_pwd,$rhost,$ipad,$comment) = &divide_data($kiji_data);
    foreach (@kiji_datas) {
        local($no,$res,$lx,$tn,$title,$name,$email,$date,$act,$pwd,$rhost,$ipad,$comment) = &divide_data($_);
        if ($rq_res == $no) {
            $parent = "▲ <A HREF=\"flashbbs.cgi?id=$ID&md=viw&no=$no&tn=$FORM{'tn'}\">$title</A> : $name<FONT COLOR=\"$em_color\">($date)</FONT>\n";
        }
        if (($res == $FORM{'no'}) && ($res ne 'root')) {
            $children .= "▼ <A HREF=\"flashbbs.cgi?id=$ID&md=viw&no=$no&tn=$FORM{'tn'}\">$title</A> : $name<FONT COLOR=\"$em_color\">($date)</FONT>\n";
        }
    }
   if ($rq_res eq 'root') { $parent = "<FONT COLOR=\"red\">没有上一则文章。</FONT>"; }
    elsif (!$parent) { $parent = "<FONT COLOR=\"$em_color\"></FONT>"; }
    if (!$children) { $children = "<FONT COLOR=\"red\">没有回应文章。</FONT>"; }
    print<<"_EOF_";
<PRE>[上一则文章]<P>
$parent
<HR width=80\% color=ffcc00>
[下一则文章]<P>
$children</PRE>

<HR width=80\% color=ffcc00>
<CENTER>回应这篇文章、在以下表单输入内容。</CENTER>
_EOF_
    if ($rq_act > 6) {
        print "<P><CENTER>不可能回履文章。</CENTER>\n";
        return 0;
    }
    if ($title =~ /^Re\[(\d+)\]:/){
        local($ct) = $1;
        $ct++;
        $title =~ s/Re\[\d+\]:/Re\[$ct\]:/;
    } elsif ($title =~ /^Re:/){
        $title =~ s/Re:/Re\[2\]:/;
    } else {
        $title = "Re:$title";
    }
    $comment = "<BR>$comment";
    $comment =~ s/<BR>((&gt;)+)/\n$1>/ig;
    $comment =~ s/<BR>/\n> /ig;
    $comment =~ s/\n//;
    &html_form($FORM{'no'},$title,$comment,$FORM{'tn'},$lx);
    if (crypt($COOKIE{'pwd'},"FlasH_BBS_Pro") eq $file_pwd) {
        print<<"_EOF_";
<HR width=80\% color=ffcc00>
<CENTER>
<FORM ACTION="flashbbs.cgi" METHOD="post">
<INPUT TYPE=hidden NAME=id VALUE=$ID>
<INPUT TYPE=hidden NAME=md VALUE="del">
<INPUT TYPE=hidden NAME=tn VALUE="$FORM{'tn'}">
<INPUT TYPE=hidden NAME=no VALUE="$FORM{'no'}">
<INPUT TYPE=hidden NAME=pwd VALUE="$COOKIE{'bbs_pwd'}">
<INPUT TYPE=submit VALUE="文章内容删除" style=\"height:23px;background-color:#FFCC00;border:1 solid black\">
</FORM>
(删除这则文章内容)
</CENTER>
_EOF_
    }
}

# [ 全部表示 ]
#

sub set {
    &html_header("全部表示");
    print<<"_EOF_";
<A NAME="list">
<HR width=80\% color=ffcc00>
<CENTER>全部表示</CENTER><P>
<PRE>
_EOF_
    @kiji_datas = &divide_log(&search_no2data($FORM{'tn'},@logs));
    foreach (@kiji_datas) {
        local($no,$res,$lx,$tn,$title,$name,$email,$date,$act) = &divide_data($_);
        $no = int($no);
        $reply[$res] .= "$no-";
        if ($res eq 'root') {
            print "<IMG SRC=\"$gif_allnews\" WIDTH=$gif_width HEIGHT=$gif_height BORDER=0>";
        } else {
            local($space_width) = $gif_width+$tree_width*$lx;
            print "<IMG SRC=\"$gif_space\" WIDTH=$space_width HEIGHT=$gif_height>";
        }
        print "<A HREF=\"#$no\"><IMG SRC=\"$gif_news\" WIDTH=$gif_width HEIGHT=$gif_height BORDER=0>$title</A> : $name<FONT COLOR=\"$em_color\">($date)</FONT>\n";
    }
    foreach $data (@kiji_datas) {
        local($no,$res,$lx,$tn,$title,$name,$email,$date,$act,$pwd,$rhost,$ipad,$comment) = &divide_data($data);
        $no = int($no);
        print<<"_EOF_";
</PRE>
<A NAME="$no">
<CENTER><P>
<HR width=80\% color=ffcc00><P>
<A HREF="flashbbs.cgi?id=$ID&md=viw&no=$no&tn=$FORM{'tn'}">回应文章</A>|<A HREF="#list">最上面</A>
<TABLE WIDTH=90%><TR><TD WIDTH=10% ALIGN="center">
<B>[$no]</B>
</TD><TD WIDTH=10%>
_EOF_
        if ($res eq 'root') {
            print" <TT>[Root]</TT>\n";
        } else {
            $res = int($res);
            print"[<A HREF=\"#$res\">▲</A><FONT COLOR=\"$em_color\"><TT>$res</TT></FONT>]\n";
        }
        print"</TD><TD>\n";
        if (!$reply[$no]) {
            print"[完]\n";
        } else {
            chop($reply[$no]);
            local(@replys) = split(/-/,$reply[$no]);
            foreach (@replys) {
                print"[<A HREF=\"#$_\"> </A><FONT COLOR=\"$em_color\"><TT>$_</TT></FONT>]\n";
            }
        }
        print"</TD></TR><TR><TD COLSPAN=3>\n";
        &kiji_view($data);
        print<<"_EOF_";
</TD></TR></TABLE>
</CENTER>
_EOF_
    }
}
# [ 最新记事一括机能 ]
sub number {
    &html_header("最新文章");
    print<<"_EOF_";
<HR width=80\% color=ffcc00>
<CENTER>
最新文章<FONT COLOR="red"><B>$new_kiji</B></FONT>则显示。
</CENTER>
_EOF_
    $count = (&read_file($countfile))[0];
    foreach (@logs) {
        @datas = &divide_log($_);
        foreach $data (@datas) {
            local($no,$res,$lx,$tn,$title,$name,$email,$date,$act) = &divide_data($data);
            if ($no > $count - $new_kiji) { push(@nums,$data); }
        }
    }
    @nums = reverse(sort(@nums));
    foreach $data (@nums) {
        local($no,$res,$lx,$tn,$title,$name,$email,$date,$act,$pwd,$rhost,$ipad,$comment) = &divide_data($data);
        print<<"_EOF_";
<CENTER><P>
<HR width=80\% color=ffcc00><P>
<A HREF="flashbbs.cgi?id=$ID&md=viw&no=$no&tn=$tn">回应文章</A>|<A HREF="flashbbs.cgi?id=$ID&md=set&tn=$tn">全部表示</A>
<TABLE WIDTH=95%><TR><TD WIDTH=10% ALIGN="center">
_EOF_
        &kiji_view($data);
        print<<"_EOF_";
</TD></TR></TABLE>
</CENTER>
_EOF_
    }
}
# [ 投稿表示 ]
sub html_form {
    local($no,$title,$comment,$tn,$lx) = (@_);
    if ($no eq '') { $no = 'root'; }
    $nam_wid = 35;

⌨️ 快捷键说明

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