LINLIN's VERSION WWWBOARD 中英文论坛程序遴遴版 By 遴遴 Linlin at 007@linlins.com 2000.7.18 改 中英文对照 为 中英文切换功能 &language=chinese 1999.12.28 README BBS 论坛程序是由 Matt Wright 的 WWWBoard 及 Omnitalk 的中文改进版改进而 来,该程序除了沿用了Omnitalk的汉字增强,文件锁定,笔名注册,分页,封锁 IP,防止重贴等许多功能外,集成了几个主要文件,极大地减少了文件数量,使 用户设置时不必在众多的文件里重复设置参数,另外在界面上恢复中英文对照, 以便不懂中文的人也可以上贴,增加了服务器端头文件和脚文件(SSI),便于增强 界面的管理,便于做广告时灵活改动。该程序在免费网站 http://www.hypermart.net 上完成调试。 Matt Wright 的 URL 是: http://worldwidemart.com/scripts/wwwboard.shtml Omnitalk 的 URL 是: http://www.omnitalk.com/ Linlin's Art Studio 的 URL 是 http://www.linlins.com/ 本程序含有下列文件: 0. 0_mainboard.html - 上贴,跟贴程序。 1. 0_readme.txt - 安装指南,本文。 2. 0_serial.txt - 贴号计数器。 3. 1_admnboard.pl - 论坛管理程序。 4. 1_admnquick.pl - 论坛管理程序,较快。 5. 2_admnpwd.txt - 版主密码文件。 6. 2_badguy.txt - 存放捣乱者的IP,取消其上贴权。 7. 2_bywhom.txt - 存放上贴者的IP信息。 8. 2_dup.txt - 存放前一个贴子的信息,用于防止重贴。 9. 2_regpwd.txt - 注册笔名密码文件。 a. footforum.cgi - 分页显示论坛贴子目录。 b. forum.pl - 分页显示论坛贴子目录。 c. headforum.cgi - 分页显示论坛贴子目录。 d. index.htm - 索引文件,该索引文件必须放入论坛文件 的子目录中,以防止密码文件等被暴露。同时 用FRAME使BBS的URL不必显示出来。 e. forum/ - 用于存放贴子的子目录。 你需要对这些文件进行必要的设定,使其能在你的服务器上正常运行。下面是 有关说明。 ***访问权限设置有简单的办法:全部设为 rwxrwxrwx *** shell> chmod 777 * ___________________________________________________________________________ forum ===== 在 bbs 目录中, 你要创建一个名叫 forum 的子目录, 用于放置贴子。 目录的访问权限应设置为 rwxrwxrwx ___________________________________________________________________________ 0_readme.txt ============ 请仔细阅读本文。 ___________________________________________________________________________ index.htm ========= 索引文件,该索引文件必须放入论坛文件的目录中,以防止密码文件等被暴露。 ___________________________________________________________________________ 0_mainboard.html ================ 贴子目录主文件。不要公布该文件,而应公布 forum.pl 作为论坛网址。 该文件的访问权限应设置为 rw_rw_rw ___________________________________________________________________________ forum.pl ======== 有的服务器规定该程序必需置于 cgi-bin 中,另一些服务器则允许该程序置于任何 位置,还有的服务器规定该程序必需用 .cgi 扩展名,在这种情况下,你则需要把 所有以 .pl 结尾的程序改为以 .cgi 结尾。 论坛的外观取决于该程序的设置,你可以设置论坛名,版主联系地址等。 该文件的访问权限应设置为 rwxr_xr_x 下面是具体说明: ############################################################################## # Define Variables $basedir = "/data1/hypermart.net/linlin/bbs/"; 该变量应设置为论坛目录的绝对路径 $baseurl = "http://www.linlins.com/bbs/"; 该变量应设置为论坛目录的URL $siteid = "linlin"; 该变量必须是路径 $baseurl 的子字符串,用于防止从论坛以外的网页向 论坛加贴。阻止黑客用程序袭击。 $cgi_url = "http://www.linlins.com/bbs/forum.pl"; 上贴和跟贴程序的 URL。 $admin_normal_url = $baseurl."1_admnboard.pl"; $admin_quick_url = $baseurl."1_admnquick.pl"; 论坛管理程序的URL $reg_url = $cgi_url."?action=register"; 笔名注册的URL。不必改动。 $addnewfile = $cgi_url."?action=addnew"; 加新贴网页的 URL。不必改动。 $page_url = $cgi_url."?action=mainpage"; 分页显示论坛贴子目录的 URL。不必改动。 $admin_url = $cgi_url."?action=admin"; 版主管理的URL。不必改动。 $mesgdir = "forum"; 用于存放贴子的子目录名。所有的贴子都存于该子目录内。 $datafile = "0_serial.txt"; 贴号计数器。 $mesgfile = "0_mainboard.html"; 主目录文件名。贴子目录主文件。 $faqfile = "0_readme.txt"; FAQ文件名。 $usrpwdfile = "2_regpwd.txt"; 注册笔名密码文件。 $trackfile = "2_bywhom.txt"; 存放上贴者的IP信息。上贴者 IP 纪录文件。 $baddiefile = "2_badguy.txt"; 捣乱者 IP 文件名,取消其上贴权。 $dupfile = "2_dup.txt"; 存放前一个贴子的基本信息,用于防止重贴。 $passwd_file = "2_admnpwd.txt"; 版主密码文件。 $busyfile = "forum/busy.txt"; 服务器太忙时,临时显示太忙的文件。不必改动。 繁忙标记文件,用于文件锁定,该文件由系统自动产生,删除。 当服务器发生故障的情况下,有时该文件未被删除,会导致上 贴或删贴时,系统给出“系统繁忙”信息,这种状态会持续 十分钟左右,然后自动消失。你可以手工删除该文件,立即恢复 上贴和删贴功能。 $ext = "html"; 贴子扩展名。存贴文件的后缀。不必改动。 $title_p = "Linlin's Forum"; 论坛主页的名称 $title = "论坛主页"; # Done ########################################################################### ########################################################################### # Configure Options $show_faq = 0; # 1 - YES; 0 = NO 是否显示常见问题,应设为 0比较好。 $allow_html = 1; # 1 = YES; 0 = NO 是否允许 html 文法, 应设为 1比较好。 $quote_text = 0; # 1 = YES; 0 = NO 是否引用, 应设为 0比较好。 $subject_line = 2; # 0 = Quote Subject Editable; 1 = Quote Subject # UnEditable; 2 = Don't Quote Subject, Editable. 应设为 2比较好。 $use_time = 1; # 1 = YES; 0 = NO 应设为 1比较好。 $posts_per_page = 100; 每页贴子数。 $max_name_length = 20; 最大笔名长度。 $max_upwd_length = 20; 最大密码长度。 $max_subj_length = 80; 最大标题长度。 $max_urim_length = 80; 最大连接长度。 $max_body_length = 30000; 最大内容长度。 # Done 0_serial.txt ============ 贴号计数器文件。初值为 1。 该文件的访问权限应设置为 rw_rw_rw ___________________________________________________________________________ 2_bywhom.txt ============ 上贴者纪录文件。请用一个复杂而无意义的字符串(包括大小写字母,数字)代替 2_bywhom.txt,使别人无法猜出。 该文件的访问权限应设置为 rw_rw_rw ___________________________________________________________________________ 2_dup.txt ============ 前一贴信息文件。请用一个复杂而无意义的字符串(包括大小写字母,数字)代替 2_dup.txt,使别人无法猜出。 该文件的访问权限应设置为 rw_rw_rw ___________________________________________________________________________ 2_badguy.txt ============ 捣乱者 IP 文件。请用一个复杂而无意义的字符串(包括大小写字母,数字)代替 2_badguy.txt,使别人无法猜出。 把捣乱者的 IP 放入该文件可以取消其从此IP的上贴权。 该文件的访问权限应设置为 rw_rw_rw ___________________________________________________________________________ 2_regpwd.txt ============ 注册笔名密码文件。请用一个复杂而无意义的字符串(包括大小写字母,数字)代替 2_regpwd.txt,使别人无法猜出。 此文件非常重要,应定期下载保存。 该文件的访问权限应设置为 rw_rw_rw_ ___________________________________________________________________________ 2_admnpwd.txt ============= 版主密码文件,用于论坛管理。请用一个复杂而无意义的字符串(包括大小写字母,数字) 代替 2_admnpwd.txt,使别人无法猜出。 版主笔名/密码的初始值为:WebAdmin/WebBoard 如果你的系统使用不同的加密方式,该密码可能不工作。在这种情况下,你可以采取以下 步骤: 1) 在 1_admnboard.pl 或 1_admnquick.pl 程序中找到以下段落: 2) 用 # 符号注释掉指定的行,这样可以绕过密码检查。 3) 选择更改笔名密码,填入笔名和密码。 4) 去掉注释符号,恢复原有程序。 ----------------------------------------------------------------------- elsif ($FORM{'action'} eq 'change_passwd') { open(PASSWD,"$basedir/$passwd_file") || &error(passwd_file); $passwd_line = ; chop($passwd_line) if $passwd_line =~ /\n$/; close(PASSWD); ($username,$passwd) = split(/:/,$passwd_line); if (!($FORM{'passwd_1'} eq $FORM{'passwd_2'})) { &error(not_same); } $test_passwd = crypt($FORM{'password'}, substr($passwd, 0, 2)); # if ($test_passwd eq $passwd && $FORM{'username'} eq $username) { open(PASSWD,">$basedir/$passwd_file") || &error(no_change); $new_password = crypt($FORM{'passwd_1'}, substr($passwd, 0, 2)); if ($FORM{'new_username'}) { $new_username = $FORM{'new_username'}; } else { $new_username = $username; } print PASSWD "$new_username:$new_password"; close(PASSWD); # } # else { # &error(bad_combo); # } &return_html(change_passwd); } ----------------------------------------------------------------------- 另外,也可以访问 Matt Wright 的 Q and A, URL 是: http://worldwidemart.com/scripts/wwwboard.shtml 该文件的访问权限应设置为 rw_rw_rw_ _______________________________________________________________________ 1_admnboard.pl ================= 有的服务器规定该程序必需置于 cgi-bin 中,另一些服务器则允许该程序置于任何 位置,还有的服务器规定该程序必需用 .cgi 扩展名,在这种情况下,你则需要把 所有以 .pl 结尾的程序改为以 .cgi 结尾。 版主笔名/密码的初始值为:WebAdmin/WebBoard 该文件的访问权限应设置为 rwxr_xr_x 下面是具体说明: ########################################################################### # Define Variables $basedir = "/data1/hypermart.net/linlin/bbs"; 该变量应设置为论坛目录的绝对路径 $baseurl = "http://www.linlins.com/bbs"; 该变量应设置为论坛目录的URL $cgi_url = "http://www.linlins.com/bbs/1_admnboard.pl"; 论坛管理程序程序的 URL。 $mesgdir = "forum"; 用于存放贴子的子目录名。所有的贴子都存于该子目录内。 $datafile = "0_serial.txt"; 贴号计数器。 $mesgfile = "0_mainboard.html"; 贴子目录主文件。 $passwd_file = "1_admnpwd.txt"; 注册笔名密码文件。 $busyfile = "busy.txt"; 繁忙标记文件,用于文件锁定,该文件有系统自动产生,删除。 $posts_per_page = 100; 每页贴子数。 $ext = "html"; 贴子扩展名。 $title = "Main Board"; $use_time = 1; # 1 = YES; 0 = NO # Done ___________________________________________________________________________ 1_admnquick.pl ============== 有的服务器规定该程序必需置于 cgi-bin 中,另一些服务器则允许该程序置于任何 位置,还有的服务器规定该程序必需用 .cgi 扩展名,在这种情况下,你则需要把 所有以 .pl 结尾的程序改为以 .cgi 结尾。 版主笔名/密码的初始值为:WebAdmin/WebBoard 该文件的访问权限应设置为 rwxr_xr_x 下面是具体说明: ########################################################################### # Define Variables $basedir = "/data1/hypermart.net/linlins/bbs/"; 该变量应设置为论坛目录的绝对路径 $baseurl = "http://www.linlins.com/bbs/"; 该变量应设置为论坛目录的URL $cgi_url = "http://www.linlins.com/bbs/1_admnquick.pl"; 论坛管理程序程序的 URL。 $mesgdir = "forum"; 用于存放贴子的子目录名。所有的贴子都存于该子目录内。 $datafile = "0_serial.txt"; 贴号计数器。 $mesgfile = "0_mainboard.html"; 贴子目录主文件。 $passwd_file = "2_admnpwd.txt"; 注册笔名密码文件。 $busyfile = "busy.txt"; 繁忙标记文件,用于文件锁定,该文件有系统自动产生,删除。 $posts_per_page = 100; 每页贴子数。 $ext = "html"; 贴子扩展名。 $title = "Linlin's Forum"; $use_time = 1; # 1 = YES; 0 = NO # Done ___________________________________________________________________________