CGI プログラム2(wwwboard)

返回


omniboard 論壇程序是由 Matt Wright 的 WWWBoard 改進而來,該程序增加了漢字, 文件鎖定,筆名注冊,分頁,封鎖IP,防止重貼,自動恢復(fù)等許多功能。該程序在免 費網(wǎng)站 http://www.hypermart.net 上完成調(diào)試。 Matt Wright 的 URL 是: http://worldwidemart.com/scripts/wwwboard.shtml 本程序含有下列文件: 1. readme.txt - 安裝指南,本文。 2. index.html - 索引文件,該索引文件必須放入論壇文件 的子目錄中,以防止密碼文件等被暴露。 3. addnew.html - 加新貼網(wǎng)頁。 4. mainboard.html - 存放貼子目錄的網(wǎng)頁。 5. mainpage.pl - 分頁顯示論壇貼子目錄。 6. mainboard.pl - 上貼,跟貼程序。 7. register.html - 注冊筆名網(wǎng)頁。 8. register.pl - 注冊筆名程序。 9. serial.txt - 貼號計數(shù)器。 10. xxxx_bywhom.txt - 存放上貼者的IP信息。 11. xxxx_dup.txt - 存放前一個貼子的信息,用于防止重貼。 12. xxxx_badguy.txt - 存放搗亂者的IP,取消其上貼權(quán)。 13. xxxx_regpwd.txt - 注冊筆名密碼文件。 14. xxxx_admnpwd.txt - 版主密碼文件。 15. yyyy_admnboard.html- 論壇管理網(wǎng)頁。 16. yyyy_admnboard.pl - 論壇管理程序。 17. yyyy_admnquick.pl - 論壇管理程序,較快。 18. messages/ - 用于存放貼子的子目錄。 你需要對這些文件進行必要的設(shè)定,使其能在你的服務(wù)器上正常運行。下面是 有關(guān)說明。 ___________________________________________________________________________ forum ===== 你要創(chuàng)建一個名叫 forum 的子目錄, 把上述文件放入該目錄中。 目錄的訪問權(quán)限應(yīng)設(shè)置為 rwxrwxrwx ___________________________________________________________________________ readme.txt ========== 請仔細閱讀本文。 ___________________________________________________________________________ index.html ========== 索引文件,該索引文件必須放入論壇文件的目錄中,以防止密碼文件等被暴露。 ___________________________________________________________________________ addnew.html =========== 加新貼網(wǎng)頁。設(shè)定上貼程序的 URL 和注冊筆名網(wǎng)頁的 URL。請根據(jù)你的系統(tǒng)進行設(shè)定。 <form method=POST action="http://freeland.hypermart.net/forum/mainboard.pl"> <a > ___________________________________________________________________________ mainboard.html ============== 貼子目錄主文件。不要公布該文件,而應(yīng)公布 mainpage.pl 作為論壇網(wǎng)址。 該文件的訪問權(quán)限應(yīng)設(shè)置為 rw_rw_rw_ ___________________________________________________________________________ mainpage.pl =========== 有的服務(wù)器規(guī)定該程序必需置于 cgi-bin 中,另一些服務(wù)器則允許該程序置于任何 位置,還有的服務(wù)器規(guī)定該程序必需用 .cgi 擴展名,在這種情況下,你則需要把 所有以 .pl 結(jié)尾的程序改為以 .cgi 結(jié)尾。 論壇的外觀取決于該程序的設(shè)置,你可以設(shè)置論壇名,版主聯(lián)系地址等。 該文件的訪問權(quán)限應(yīng)設(shè)置為 rwxr_xr_x 下面是具體說明: ############################################################################## # Define Variables $basedir = "/data1/hypermart.net/freeland/forum"; 該變量應(yīng)設(shè)置為論壇目錄的絕對路徑 (注: 在有的服務(wù)器上,該變量也可設(shè)置為相對路徑, 如: $basedir = "." 或者 $basedir = "../forum" 在 NT IIS 4.0 環(huán)境下, 則應(yīng)改為類似于如下的格式: $basedir = "c:\\InetPub\\scripts"; ) $baseurl = "http://freeland.hypermart.net/forum"; 該變量應(yīng)設(shè)置為論壇目錄的URL $page_url = "http://freeland.hypermart.net/forum/mainpage.pl"; 分頁顯示論壇貼子目錄的 URL。 $addnewfile = "addnew.html"; 加新貼網(wǎng)頁的 URL。 $mesgfile = "mainboard.html"; 主目錄文件名。 $title = "論壇主頁"; # Done ########################################################################### ########################################################################### # Configure Options $posts_per_page = 100; 每頁貼子數(shù)。 # Done ___________________________________________________________________________ mainboard.pl ============ 有的服務(wù)器規(guī)定該程序必需置于 cgi-bin 中,另一些服務(wù)器則允許該程序置于任何 位置,還有的服務(wù)器規(guī)定該程序必需用 .cgi 擴展名,在這種情況下,你則需要把 所有以 .pl 結(jié)尾的程序改為以 .cgi 結(jié)尾。 該文件的訪問權(quán)限應(yīng)設(shè)置為 rwxr_xr_x 這是所需設(shè)置的最復(fù)雜的文件,它有許多變量和選項,下面是具體說明: ########################################################################### # Define Variables $basedir = "/data1/hypermart.net/freeland/forum"; 該變量應(yīng)設(shè)置為論壇目錄的絕對路徑 (注: 在有的服務(wù)器上,該變量也可設(shè)置為相對路徑, 如: $basedir = "." 或者 $basedir = "../forum" 在 NT IIS 4.0 環(huán)境下, 則應(yīng)改為類似于如下的格式: $basedir = "c:\\InetPub\\scripts"; ) $baseurl = "http://freeland.hypermart.net/forum"; 該變量應(yīng)設(shè)置為論壇目錄的URL $siteid = "freeland"; 該變量必需為 $baseurl 的子字符串,用于防止從論壇以外的網(wǎng)頁向 論壇加貼。如果該變量沒有設(shè)成 $baseurl 的子字符串,在上貼時會 得到以下出錯信息: “錯誤: 該貼重復(fù)”。 $cgi_url = "http://freeland.hypermart.net/forum/mainboard.pl"; 上貼和跟貼程序的 URL。 $page_url = "http://freeland.hypermart.net/forum/mainpage.pl"; 分頁顯示論壇貼子目錄的 URL。 $mesgdir = "messages"; 用于存放貼子的子目錄名。所有的貼子都存于該子目錄內(nèi)。 $datafile = "serial.txt"; 貼號計數(shù)器。 $usrpwdfile = "xxxx_regpwd.txt"; 注冊筆名密碼文件。 $trackfile = "xxxx_bywhom.txt"; 上貼者 IP 紀錄文件。 $baddiefile = "xxxx_badguy.txt"; 搗亂者 IP 文件,取消其上貼權(quán)。 $dupfile = "xxxx_dup.txt"; 存放前一個貼子的基本信息,用于防止重貼。 $busyfile = "busy.txt"; 繁忙標記文件,用于文件鎖定,該文件由系統(tǒng)自動產(chǎn)生,刪除。 當服務(wù)器發(fā)生故障的情況下,有時該文件未被刪除,會導(dǎo)致上 貼或刪貼時,系統(tǒng)給出“系統(tǒng)繁忙”信息,這種狀態(tài)會持續(xù) 十分鐘左右,然后自動消失。你可以手工刪除該文件,立即恢復(fù) 上貼和刪貼功能。 $mesgfile = "mainboard.html"; 貼子目錄主文件。 $faqfile = "faq.html"; $ext = "html"; 貼子擴展名。 $title = "論壇主頁"; $title_p = "論壇主頁"; # Done ########################################################################### ########################################################################### # Configure Options $show_faq = 0; # 1 - YES; 0 = NO 是否顯示常見問題,應(yīng)設(shè)為 0。 $allow_html = 0; # 1 = YES; 0 = NO 是否允許 html 文法, 應(yīng)設(shè)為 0。 $quote_text = 0; # 1 = YES; 0 = NO 是否引用, 應(yīng)設(shè)為 0。 $subject_line = 2; # 0 = Quote Subject Editable; 1 = Quote Subject # UnEditable; 2 = Don't Quote Subject, Editable. 應(yīng)設(shè)為 2。 $use_time = 1; # 1 = YES; 0 = NO 應(yīng)設(shè)為 1。 $max_name_length = 20; 最大筆名長度。 $max_upwd_length = 20; 最大密碼長度。 $max_subj_length = 80; 最大標題長度。 $max_urim_length = 200; 最大連接長度。 $max_body_length = 30000; 最大內(nèi)容長度。 # Done ___________________________________________________________________________ register.html ============= 注冊筆名網(wǎng)頁。設(shè)定注冊筆名程序的 URL。請根據(jù)你的系統(tǒng)進行設(shè)定。 <form method=POST action="http://freeland.hypermart.net/forum/register.pl"> ___________________________________________________________________________ register.pl =========== 有的服務(wù)器規(guī)定該程序必需置于 cgi-bin 中,另一些服務(wù)器則允許該程序置于任何 位置,還有的服務(wù)器規(guī)定該程序必需用 .cgi 擴展名,在這種情況下,你則需要把 所有以 .pl 結(jié)尾的程序改為以 .cgi 結(jié)尾。 該文件的訪問權(quán)限應(yīng)設(shè)置為 rwxr_xr_x 下面是具體說明: ############################################################################## # Define Variables $basedir = "/data1/hypermart.net/freeland/forum"; 該變量應(yīng)設(shè)置為論壇目錄的絕對路徑 (注: 在有的服務(wù)器上,該變量也可設(shè)置為相對路徑, 如: $basedir = "." 或者 $basedir = "../forum" 在 NT IIS 4.0 環(huán)境下, 則應(yīng)改為類似于如下的格式: $basedir = "c:\\InetPub\\scripts"; ) $reg_url = "http://freeland.hypermart.net/forum/register.pl"; 注冊筆名程序的 URL。 $usrpwdfile = "xxxx_regpwd.txt"; 筆名密碼文件。 $busyfile = "busy.txt"; 繁忙標記文件,用于文件鎖定,該文件有系統(tǒng)自動產(chǎn)生,刪除。 $baddiefile = "xxxx_badguy.txt"; 搗亂者 IP 文件,取笑其注冊權(quán)。 $mesgfile = "http://freeland.hypermart.net/forum/mainboard.html"; 貼子目錄主文件的 URL。 $addnewfile = "http://freeland.hypermart.net/forum/addnew.html"; 加新貼網(wǎng)頁的 URL。 # Done ########################################################################### ########################################################################### # Configure Options $show_faq = 0; # 1 - YES; 0 = NO $allow_html = 1; # 1 = YES; 0 = NO $quote_text = 0; # 1 = YES; 0 = NO $subject_line = 2; # 0 = Quote Subject Editable; 1 = Quote Subject # UnEditable; 2 = Don't Quote Subject, Editable. $use_time = 1; # 1 = YES; 0 = NO $max_name_length = 20; 最大筆名長度。 $max_upwd_length = 20; 最大密碼長度。 # Done ___________________________________________________________________________ serial.txt ========== 貼號計數(shù)器文件。初值為 1。 該文件的訪問權(quán)限應(yīng)設(shè)置為 rw_rw_rw_ ___________________________________________________________________________ xxxx_bywhom.txt =============== 上貼者紀錄文件。請用一個復(fù)雜而無意義的字符串(包括大小寫字母,數(shù)字)代替 xxxx,使別人無法猜出。 該文件的訪問權(quán)限應(yīng)設(shè)置為 rw_rw_rw_ ___________________________________________________________________________ xxxx_dup.txt ============ 前一貼信息文件。請用一個復(fù)雜而無意義的字符串(包括大小寫字母,數(shù)字)代替 xxxx,使別人無法猜出。 該文件的訪問權(quán)限應(yīng)設(shè)置為 rw_rw_rw_ ___________________________________________________________________________ xxxx_badguy.txt =============== 搗亂者 IP 文件。請用一個復(fù)雜而無意義的字符串(包括大小寫字母,數(shù)字)代替 xxxx,使別人無法猜出。 把搗亂者的 IP 放入該文件可以取消其上貼權(quán)。 該文件的訪問權(quán)限應(yīng)設(shè)置為 rw_rw_rw_ ___________________________________________________________________________ xxxx_regpwd.txt =============== 注冊筆名密碼文件。請用一個復(fù)雜而無意義的字符串(包括大小寫字母,數(shù)字)代替 xxxx,使別人無法猜出。 此文件非常重要,應(yīng)定期下載保存。 該文件的訪問權(quán)限應(yīng)設(shè)置為 rw_rw_rw_ ___________________________________________________________________________ xxxx_admnpwd.txt =============== 版主密碼文件,用于論壇管理。請用一個復(fù)雜而無意義的字符串(包括大小寫字母,數(shù)字) 代替 xxxx,使別人無法猜出。 版主筆名/密碼的初始值為:WebAdmin/WebBoard 如果你的系統(tǒng)使用不同的加密方式,該密碼可能不工作。在這種情況下,你可以在以下網(wǎng) 址找到解決辦法: http://worldwidemart.com/scripts/faq/wwwboard.shtml 或者,你也可以采取以下步驟: 1) 在 xxxx_admnboard.pl 和 xxxx_admnquick.pl 程序中找到以下段落: 2) 用 # 符號注釋掉指定的行,這樣可以繞過密碼檢查。 3) 選擇更改筆名密碼,填入筆名和密碼。 4) 去掉注釋符號,恢復(fù)原有程序。 ----------------------------------------------------------------------- elsif ($FORM{'action'} eq 'change_passwd') { open(PASSWD,"$basedir/$passwd_file") || &error(passwd_file); $passwd_line = <PASSWD>; 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); } ----------------------------------------------------------------------- 該文件的訪問權(quán)限應(yīng)設(shè)置為 rw_rw_rw_ ___________________________________________________________________________ yyyy_admnboard.html =================== 論壇網(wǎng)頁。設(shè)定論壇管理程序的 URL。請根據(jù)你的系統(tǒng)進行設(shè)定。 <td><a >admin</td> <td><a >admin(fast)</td> ___________________________________________________________________________ yyyy_admnboard.pl ================= 有的服務(wù)器規(guī)定該程序必需置于 cgi-bin 中,另一些服務(wù)器則允許該程序置于任何 位置,還有的服務(wù)器規(guī)定該程序必需用 .cgi 擴展名,在這種情況下,你則需要把 所有以 .pl 結(jié)尾的程序改為以 .cgi 結(jié)尾。 版主筆名/密碼的初始值為:WebAdmin/WebBoard 該文件的訪問權(quán)限應(yīng)設(shè)置為 rwxr_xr_x 下面是具體說明: ########################################################################### # Define Variables $basedir = "/data1/hypermart.net/freeland/forum"; 該變量應(yīng)設(shè)置為論壇目錄的絕對路徑 (注: 在有的服務(wù)器上,該變量也可設(shè)置為相對路徑, 如: $basedir = "." 或者 $basedir = "../forum" 在 NT IIS 4.0 環(huán)境下, 則應(yīng)改為類似于如下的格式: $basedir = "c:\\InetPub\\scripts"; ) $baseurl = "http://freeland.hypermart.net/forum"; 該變量應(yīng)設(shè)置為論壇目錄的URL $cgi_url = "http://freeland.hypermart.net/forum/yyyy_admnboard.pl"; 論壇管理程序程序的 URL。 $mesgdir = "messages"; 用于存放貼子的子目錄名。所有的貼子都存于該子目錄內(nèi)。 $datafile = "serial.txt"; 貼號計數(shù)器。 $mesgpage = "mainboard.html"; 貼子目錄主文件。 $mesgfile = "mainboard.html"; 貼子目錄主文件。 $passwd_file = "xxxx_admnpwd.txt"; 注冊筆名密碼文件。 $busyfile = "busy.txt"; 繁忙標記文件,用于文件鎖定,該文件有系統(tǒng)自動產(chǎn)生,刪除。 $posts_per_page = 100; 每頁貼子數(shù)。 $ext = "html"; 貼子擴展名。 $title = "Main Board"; $use_time = 1; # 1 = YES; 0 = NO # Done ___________________________________________________________________________ yyyy_admnquick.pl ================= 有的服務(wù)器規(guī)定該程序必需置于 cgi-bin 中,另一些服務(wù)器則允許該程序置于任何 位置,還有的服務(wù)器規(guī)定該程序必需用 .cgi 擴展名,在這種情況下,你則需要把 所有以 .pl 結(jié)尾的程序改為以 .cgi 結(jié)尾。 版主筆名/密碼的初始值為:WebAdmin/WebBoard 該文件的訪問權(quán)限應(yīng)設(shè)置為 rwxr_xr_x 下面是具體說明: ########################################################################### # Define Variables $basedir = "/data1/hypermart.net/freeland/forum"; 該變量應(yīng)設(shè)置為論壇目錄的絕對路徑 (注: 在有的服務(wù)器上,該變量也可設(shè)置為相對路徑, 如: $basedir = "." 或者 $basedir = "../forum" 在 NT IIS 4.0 環(huán)境下, 則應(yīng)改為類似于如下的格式: $basedir = "c:\\InetPub\\scripts"; ) $baseurl = "http://freeland.hypermart.net/forum"; 該變量應(yīng)設(shè)置為論壇目錄的URL $cgi_url = "http://freeland.hypermart.net/forum/yyyy_admnquick.pl"; 論壇管理程序程序的 URL。 $mesgdir = "messages"; 用于存放貼子的子目錄名。所有的貼子都存于該子目錄內(nèi)。 $datafile = "serial.txt"; 貼號計數(shù)器。 $mesgpage = "mainboard.html"; 貼子目錄主文件。 $mesgfile = "mainboard.html"; 貼子目錄主文件。 $passwd_file = "xxxx_admnpwd.txt"; 注冊筆名密碼文件。 $busyfile = "busy.txt"; 繁忙標記文件,用于文件鎖定,該文件有系統(tǒng)自動產(chǎn)生,刪除。 $posts_per_page = 100; 每頁貼子數(shù)。 $ext = "html"; 貼子擴展名。 $title = "Main Board"; $use_time = 1; # 1 = YES; 0 = NO # Done ___________________________________________________________________________ messages ======== 在 forum 目錄中, 你要創(chuàng)建一個名叫 messages 的子目錄, 用于放置貼子。 目錄的訪問權(quán)限應(yīng)設(shè)置為 rwxrwxrwx, 如果服務(wù)器為了安全不允許作此設(shè)置, 則可設(shè)為 rw_rw_rw_ . 請仔細閱讀服務(wù)器有關(guān)CGI的使用說明,并在必要時與 網(wǎng)絡(luò)管理員聯(lián)系. ___________________________________________________________________________
戻る
西畴县| 垫江县| 镇赉县| 垦利县| 准格尔旗| 罗定市| 集贤县| 墨竹工卡县| 视频| 塘沽区| 桐乡市| 邳州市| 综艺| 江川县| 南部县| 蒙城县| 绵阳市| 仁寿县| 甘南县| 米林县| 将乐县| 田林县| 衡水市| 株洲市| 保德县| 轮台县| 绿春县| 神池县| 潜山县| 镇江市| 宜章县| 浦江县| 西丰县| 六枝特区| 大同县| 南靖县| 三明市| 卓资县| 松江区| 辽中县| 宿迁市|