#!/usr/bin/perl
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++ [ Motto Kakikomitai 多功能晉級留言板 Ver0.864 ] 原程式更新於 2001.02.04 / 中文版更新於 2001.03.04 (二版)
#+++ >>> Copyright (c) 1999.10 Tacky's Room. All rights reserved.
#+++ 原作者: Tacky 電子郵箱 >>> tackysrm@lily.freemail.ne.jp 個人網站 >>> http://tackysroom.com
#+++ 中文化: 驚直 電子郵箱 >>> webmaster@kiddiken.net 個人網站 >>> http://kiddiken.net
#+++ ※由於小弟不懂日文,所以程式裡很多地方都是猜出來翻的!如果有什麼地方是誤翻的,請你寫信或在留言板告訴我吧!
#+++
#+++ 設置方法
#+++
#+++ public_html (首頁資料夾)
#+++ |-- mkakikomitai (777或711) (任何一個空的資料夾)
#+++ |-- mkakikomitai.cgi (755或700) (主程式)
#+++ |-- mkakikomitai.txt (666或600) (留言記錄檔 - 開始時是空的)
#+++ |-- mkakikomitai_cnt.txt (666或600) (晉級狀態記錄檔 - 開始時是空的)
#+++ |-- mkakikomitai.cnt (666或600) (計數器記錄檔 - 開始時是空的)
#+++ |-- img (755) (程式圖檔資料夾)
#+++ | |-- *.gif (644) (程式圖檔)
#+++ |-- cicon (755) (計數器圖檔資料夾)
#+++ | |-- num6_0∼9.gif (644) (計數器圖檔)
#+++ |-- icon (755) (留言板圖檔資料夾)
#+++ | |-- *.gif (644) (留言板圖檔)
#+++ |-- old (755) (舊留言集存放位置 - 啟動留言板之前必須先建立這個資料夾)
#+++
#+++ ■括號()內的數字表示該資料夾或檔案要設成的檔案權限數值。
#+++ ■除了gif檔案是使用二進位模式(Binary Mode)上傳外,其餘檔案必須使用純文字模式(ASCII Mode)上傳到伺服器。
#+++ ■mkakikomitai.lock這個檔案在有需要的時候會自動產生及刪除。
#+++ ■在下面基本設定填入檔名的時候,如果有需要(例如檔案放在別處),便要使用完整路徑(http://∼)來指定。
#+++
#+++ >>> 原日文版更新歷程...
#+++ 2001.02.04(Ver0.864) >> 把圖檔一覽表的「返回」連結加回去(不適用於中文版)。「一氣回覆」套用留言內容最高字數的限制。
#+++ 2001.01.31(Ver0.863) >> 修正當刪除留言記錄後,留言編號的數值沒有清空的臭蟲。
#+++ 2001.01.22(Ver0.862) >> 修正 語法錯誤。
#+++ 2001.01.16(Ver0.861) >> 修正設定管理者專用圖檔時一個錯誤的變數。
#+++ 2001.01.13(Ver0.86) >> 加入了專為管理者而設的「一氣回覆」功能。
#+++ 加入了提供留言記錄下載功能,讓使用者可以離線閱讀。目的是要節省電話費。(^-^)
#+++ 管理者專用圖檔&常連者專用圖檔使用不同矩陣,前者並加入密碼維護安全。
#+++ 晉級說明及晉級狀態的連結改以表單按鈕進入,列表加強表格顯示。
#+++ 改變各種GIF圖檔指定IMG語法的設定模式,使其可以加入圖檔闊度與高度的值。這樣可以避免頁面顯示出來的時候移來移去。(笑)
#+++ 使用sendmail程式寄發郵件通知的功能加入了一個設定值,可以讓你避免連自己寫入的留言記錄也要通知。
#+++ 2000.10.29(Ver0.851) >> 修正因檔案鎖定程序錯誤而引致的計數器問題...m(_ _)m
#+++ 2000.10.28 >> 圖檔一覽表加入管理者及常連者專用圖檔。
#+++ 簡化檢查重複輸入留言的程序。
#+++ 2000.08.07 >> 修正留言內容輸入表單的表格錯誤語法。
#+++ 2000.07.26 >> 修正關於多重刪除留言記錄的臭蟲。
#+++ 2000.07.14 >> 修正當不使用留言標題($titleset=0)的時候,「送出留言」按鈕跳到別處的錯誤。
#+++ 2000.07.12 >> 修正檔案鎖定之問題。
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$ver = '0.864'; #(驚直修改 - 加入程式版本編號)
#─<基本設定開始>────────────────────────────────────────────────────────
$url = "http://www2.nsysu.edu.tw/physdemo/"; #首頁的網址
$script = './phy-kh2.cgi'; #主程式檔名
$logfile = './phy-kh2.txt'; #留言記錄檔名
$lockfile = './phy-kh2.lock'; #鎖定檔檔名
$cntfile = './phy-kh2.cnt'; #計數器記錄檔名 (不使用則改為'')
#$logfile2 = './phy-kh2.txt'; #設定記錄留言者留言篇數的晉級狀態記錄檔。(使用晉級制度必須有此檔案,不使用則改為'')
#要使用計數器的功能,必須設定每個計數器圖檔的語法。src=之後的是圖檔路徑。如果你知道每個圖檔的大小,最好也加入闊度(width)和高度(height)的數值。
#設定圖檔路徑時,也可以用類似src=http://www.∼/xxx.gif的語法來指定存在於主機伺服器以外其他位置的圖檔。
#如果不指定計數器圖檔,請改為'',便會使用純文字形式表示。
$cnt_gif[0] = '';
$cnt_gif[1] = '';
$cnt_gif[2] = '';
$cnt_gif[3] = '';
$cnt_gif[4] = '';
$cnt_gif[5] = '';
$cnt_gif[6] = '';
$cnt_gif[7] = '';
$cnt_gif[8] = '';
$cnt_gif[9] = '';
$cnt_keta = 5; #計數器要顯示幾多位數字?
$title = '角動量'; #留言板的標題
$titlelogo = ''; #留言板標題圖檔IMG語法 (不使用則改為'')
$backpicture = ''; #背景圖檔
$bgcolor = 'white'; #背景顏色
$tbgcolor = ''; #填寫留言表格的背景顏色
$tcolor = 'gray'; #文字顏色
$linkcolor = 'dimgray'; #連結顏色 (從未到訪)
$vlinkcolor = 'dimgray'; #連結顏色 (曾經到訪)
$alinkcolor = 'firebrick'; #連結顏色 (正在到訪)
$hovercolor = 'red'; #連結顏色 (滑鼠經過時) #i000331
$pt = '10pt'; #整體字形大小,建議:9,10,11,12 #i000331
$pt_mini = '9pt'; #微縮字形大小,建議:8,9,10 (驚直加入 - 套用於"圖檔一覽表"連結、顏色方塊、使用者晉級資訊及留言資訊)
$e_font = "Tahoma, Verdana, Arial"; #英文專屬字形集 (驚直加入)
$res_gif = '/physdemo/cgi-bin/img/res.gif'; #設定讓訪客「回覆留言」的圖檔。(不使用則改為'',便會以純文字形式表示)
$gif_spacer = '/physdemo/cgi-bin/img/spacer.gif'; #調整空位的DUMMY圖檔
$name_color = 'white'; #每篇留言之中,留言者名字等資訊的顏色
$msg_color = 'white'; #每篇留言之中,留言內容的背景顏色
$titleset = 0; #每篇留言都要有標題嗎?(0:不要 1:要)
$homelinklogo = ''; #留言者個人網站連結圖檔IMG語法 (不使用則改為'')
$maillinklogo = ''; #留言者電子郵箱連結圖檔IMG語法 (不使用則改為'')
$top_l = ''; #造成留言框圓角效果的圖檔IMG語法 (左上角) (不使用則改為'')
$top_r = ''; #造成留言框圓角效果的圖檔IMG語法 (右上角) (不使用則改為'')
$bottom_l = ''; #造成留言框圓角效果的圖檔IMG語法 (左下角) (不使用則改為'')
$bottom_r = ''; #造成留言框圓角效果的圖檔IMG語法 (右下角) (不使用則改為'')
$datamax = 100 ; #最新的留言集,保留的留言篇數 (只要留言達到這個數目,最原先的留言便會存入舊留言集)
$pagemax = 20 ; #1頁可顯示之留言篇數
$password = 'pass'; #管理者密碼
$tag = 'yes'; #允許使用HTML碼?(yes,no)
$resflag = 'yes'; #最新回覆的留言搬到最頂?(yes,no)
$hostflag = 'yes'; #顯示留言者的HOST位址?(yes,no)
$row = 4; #輸入留言內容方塊的列數(高度)
$col = 56; #輸入留言內容方塊的欄數(闊度)
$t_width = 540; #每篇留言的闊度(以像素計)
#設定留言可用之背景顏色.原作者的設定:@COLORS_B = ('#666666','#003399','#990000','#669900','#cc3399','#ff6633','#cccc00');
@COLORS_B = ('blue','red','brown','black','grey'); #(驚直修改 - 使用文字顏色碼並加入更多顏色)
$colb_use = 0; #(0:顏色由留言者選擇 1:顏色由管理者指定)
$colb = 'silver' ; #如果上面的值是'1',全部留言都使用這個指定的背景顏色
#設定留言可用之文字顏色.原作者的設定:@COLORS_F = ('#666666','#003399','#990000','#669900','#cc3399','#ff6633','#cccc00','#000000');
@COLORS_F = ('blue','red','brown','black','grey'); #(驚直修改 - 使用文字顏色碼並加入更多顏色)
$colf_use = 0; #(0:顏色由留言者選擇 1:顏色由管理者指定)
$colf = 'black' ; #如果上面的值是'1',全部留言都使用這個指定的文字顏色
#留言表格的各個欄目(名字、電子郵箱、個人網站、標題等)可以使用一套圖檔顯示出來
$gif_flg = 1; #想要使用留言表格欄目圖檔嗎?(0:不使用 1:使用)
#設定留言表格的各個欄目圖檔
$gif_name = '/physdemo/cgi-bin/img/kakikomitai_name.gif'; #(名字)
$gif_email = '/physdemo/cgi-bin/img/kakikomitai_email.gif'; #(電子郵箱)
$gif_home = '/physdemo/cgi-bin/img/kakikomitai_homepage.gif'; #(個人網站)
$gif_title = '/physdemo/cgi-bin/img/kakikomitai_title.gif'; #(標題)
$gif_message = '/physdemo/cgi-bin/img/kakikomitai_message.gif'; #(留言內容)
$icon_use = 'yes'; #留言內容使用圖檔嗎?(yes,no)
#↓設定管理者專用圖檔。除了管理者以外,沒有其他人可以使用這個圖檔。
#你可以在$oiconpass為這個屬於你的專用圖檔設定一個密碼,留言內容掃出來的時候驗證密碼&名字如果跟記錄所載相同才會顯示出來,否則會使用一般圖檔。
#醬子就算有人要冒充你來寫留言,也必須知道你的專用圖檔密碼才能夠成功盜用你的身份。(不使用則改為$oiconpass = '';)
$oicon_gif = '/physdemo/cgi-bin/icon/d_ahiru.gif' ; $oiconpass = 'opass'; $oicon_gif_w = 32 ; $oicon_gif_h = 32 ;
#↓設定常連者專用圖檔。你可以為你的朋友或經常上來寫留言的網友(常連者)增加其他圖檔如$jicon_gif[2]...[5]等,餘此類推。
#留言內容掃出來的時候,會驗證留言者的名字是否跟這裡所設定的$jiconnm一樣,如是者便會出現對應的個人圖檔,不受自行選擇之圖檔影響。
$jicon_gif[0] = '/physdemo/cgi-bin/icon/kuma.gif' ; $jiconnm[0] = 'A君' ; $jicon_gif_w[0] = 38 ; $jicon_gif_h[0] = 38 ;
$jicon_gif[1] = '/physdemo/cgi-bin/icon/parappa.gif' ; $jiconnm[1] = 'B君' ; $jicon_gif_w[1] = 37 ; $jicon_gif_h[1] = 35 ;
#↓設定留言者一般可選擇之圖檔。可以依個人需要增加其他圖檔如$icon_gif[11]...[20]等,餘此類推。
$icon_gif[0] = '/physdemo/cgi-bin/icon/motion.gif' ; $iconnm[0] = 'motion' ; $icon_gif_w[0] = 32 ; $icon_gif_h[0] = 32 ;
$icon_gif[1] = '/physdemo/cgi-bin/icon/Emc2.gif' ; $iconnm[1] = 'Emc2' ; $icon_gif_w[1] = 32 ; $icon_gif_h[1] = 32 ;
$icon_gif[2] = '/physdemo/cgi-bin/icon/碰撞.gif' ; $iconnm[2] = '碰撞' ; $icon_gif_w[2] = 32 ; $icon_gif_h[2] = 32 ;
$icon_gif[3] = '/physdemo/cgi-bin/icon/電力線.gif' ; $iconnm[3] = '電力線' ; $icon_gif_w[3] = 32 ; $icon_gif_h[3] = 32 ;
$icon_gif[4] = '/physdemo/cgi-bin/icon/波.gif' ; $iconnm[4] = '波' ; $icon_gif_w[4] = 32 ; $icon_gif_h[4] = 32 ;
$icon_gif[5] = '/physdemo/cgi-bin/icon/二極體.gif' ; $iconnm[5] = '二極體' ; $icon_gif_w[5] = 32 ; $icon_gif_h[5] = 32 ;
$icon_gif[6] = '/physdemo/cgi-bin/icon/重力場.gif' ; $iconnm[6] = '重力場' ; $icon_gif_w[6] = 32 ; $icon_gif_h[6] = 32 ;
$icon_gif[7] = '/physdemo/cgi-bin/icon/白努力.gif' ; $iconnm[7] = '白努力' ; $icon_gif_w[7] = 32 ; $icon_gif_h[7] = 32 ;
$icon_gif[8] = '/physdemo/cgi-bin/icon/光柵.gif' ; $iconnm[8] = '光柵' ; $icon_gif_w[8] = 32 ; $icon_gif_h[8] = 32 ;
$icon_line = 3 ; #顯示圖檔一覽表時,每行顯示幾多個圖檔?
$method = 'POST'; #METHOD方式(POST或GET)
#設定有問題的網域清單。只要符合這清單的網域都會被攔截(禁止寫入留言)。
# 設定 "xxx?.com" 即包括了 "xxx1.com","xxx2.com" 等,「?」可以是任何1個字元。
# 設定 "xxx*.com" 即包括了 "xxx1.com","xxx12345.com" 等,「*」可以是0個或以上的任何字元。
@DANGER_LIST=("xxx.com","yyy.com","zzz*.org.tw");
#設定留言內容的最高字數(以字元計算)。如果不設定最高字數,改為''即可。這個數值不能夠設得太大,最好是5000或以下,否則可能會出現錯誤信息。
$maxword = '2000'; #2000個字元即代表1000個中文字。
#設定晉級制度的每個類別。
@rank = ('幼稚園生','小學校低學年','小學校中學年','小學校高學年','中學生','高校生','大學生','大學院生','平社員','課長','部長','社長');
#設定每個類別的晉級資格,數目為留言篇數。
@rankno = ('0','5','10','20','30','50','70','100','130','150','180','250');
#你想要根據各人的晉級狀態來指定圖檔嗎?如果你使用這個模式,留言者在留言時毋須選擇圖檔。
#此外,圖檔的數目須與晉級制度的級數互相對應。(註:除管理者專用圖檔外,其餘常連者專用圖檔會失效)
#例:
# $icon_gif[0] = 'xx1.gif'; $iconnm[0] = '第一級';
# $icon_gif[1] = 'xx2.gif'; $iconnm[1] = '第二級';
# $icon_gif[2] = 'xx3.gif'; $iconnm[2] = '第三級';
# @rank = ('第一級','第二級','第三級');
# @rankno = ('0','10','100'); ※設定3個晉級類別,便要設定3個圖檔,而每個圖檔分別代表這3個類別。
$icon_rank = 0; #0:不要根據晉級狀態指定圖檔(留言時自行選擇圖檔) 1:根據晉級狀態指定圖檔
#設定sendmail程式的路徑。此項資料可向網路管理者查詢。(一般是/usr/sbin/sendmail或/usr/lib/sendmail)
#如果你想要在有新留言的時候把留言資料寄到你的電子郵箱,便要設定,否則可保留為$sendmail = "";
$sendmail = "";
#設定寄發郵件通知時,要收件的電子郵箱。「@」之前的一個「\」符號是必須加上的。如果沒有了「\」這符號,會出現Internal Server Error錯誤訊息。
#(使用sendmail程式送信才需要設定)
$smail_address = "xxxx\@xxxx.xxxx.com.tw";
$sendsw = 1; #當使用寄發郵件通知功能時,連你自己寫入的留言記錄(以上面的郵箱作對照)也要利用郵件通知嗎?(0:忽略 1:全部都要通知)
$hiho = 0; #設為「1」即可使用「hi-ho」形式傳送郵件。某些伺服器不支援。 ※使用sendmail程式送信才需要設定
#留言密碼的加密程序(使用crypt函數將密碼暗號化)
$ango = 1; #0: 不使用 1:使用 (建議使用)
#舊留言集的設定…指定一個資料夾($olddir)存放"01.txt".."10.txt"等等的舊留言記錄檔。
$olddir = './old/'; #保存舊留言集的資料夾所在。(不使用則改為'')
$oldmax = 100; #每個舊留言集可容納之留言串列數。每當超過這個串列數後,會建立另一個舊留言集。
#你想要使用像『nyaponika學習帳』留言板的「橫線隔行」功能嗎?
$nya = 0 ; #留言內容的換行符號(
)要用橫線(
)取代嗎?(0:否 1:是)
$maru = 1 ; #留言框要使用圓角嗎?(0:否 1:是)…如果「否」,則可以不要$top_l,r,$bottom_l,r這些圖檔。
#=============================================================================================================================================================================================
#設定CSS樣式表 ※如果不使用,請改為 $css_style = ""; 有需要的話,可以輸入2行或以上的文字(只要設定在兩個EOM標記之間就可以)。
$css_style = <<"EOM"; #(一般輸入欄位的樣式表設定,套用於表單中的textarea及input type=text,password)
style="font-size:$pt; font-family:'新細明體','PMingLiU';
color:dimgray; background-color:white; border-width:1px; border-style:solid; border-color:lightgrey;"
onFocus="this.style.backgroundColor='ivory'" onBlur="this.style.backgroundColor='white'"
EOM
$css_style_e = <<"EOM"; #(驚直加入 - 英數文字輸入欄位的樣式表設定,套用於表單中的[電子郵箱/個人網站/留言編號]欄位)
style="font-size:$pt; font-family:$e_font;
color:dimgray; background-color:white; border-width:1px; border-style:solid; border-color:lightgrey;"
onFocus="this.style.backgroundColor='ivory'" onBlur="this.style.backgroundColor='white'"
EOM
$css_button = <<"EOM"; #(驚直加入 - 按鈕專用的樣式表設定,套用於表單中的input type=submit,reset,button)
style="font-size:$pt; font-family:'新細明體','PMingLiU'; line-height:12pt;
color:gray; background-color:white; border-width:1px; border-style:solid; border-color:lightgrey;"
onMouseOver="this.style.color='dimgray';this.style.backgroundColor='ivory'" onMouseOut="this.style.color='gray';this.style.backgroundColor='white'"
EOM
$css_select = <<"EOM"; #(驚直加入 - 下拉選單專用的樣式表設定,套用於表單中的select)
style="font-size:$pt; font-family:'新細明體','PMingLiU'; color:gray; background-color:white;"
onFocus="this.style.backgroundColor='ivory'" onBlur="this.style.backgroundColor='white'"
EOM
$css_style_ = <<"EOM"; #(驚直加入 - 針對非IE瀏覽器的一般輸入欄位的樣式表設定)
style="font-size:$pt; font-family:'新細明體','PMingLiU'; color:dimgray; background-color:white; padding-left:2px;"
onFocus="this.style.backgroundColor='ivory'" onBlur="this.style.backgroundColor='white'"
EOM
$css_style_e_ = <<"EOM"; #(驚直加入 - 針對非IE瀏覽器的英數文字輸入欄位的樣式表設定)
style="font-size:$pt; font-family:$e_font; color:dimgray; background-color:white; padding-left:2px;"
onFocus="this.style.backgroundColor='ivory'" onBlur="this.style.backgroundColor='white'"
EOM
$css_button_ = <<"EOM"; #(驚直加入 - 針對非IE瀏覽器的按鈕專用的樣式表設定)
style="font-size:9pt; font-family:'新細明體','PMingLiU'; color:gray; background-color:white;"
onMouseOver="this.style.color='dimgray';this.style.backgroundColor='ivory'" onMouseOut="this.style.color='gray';this.style.backgroundColor='white'"
EOM
#■↓以下這個功能目的是要惡作劇留言者,使用隨機數目回扣留言者的留言篇數,如果不想使用請設為「$rdm = 0;」。
$rdm = 0; #數值範圍是0∼30,隨機變化。
@DOWN = (1,2,3,5,7,10); #隨機回扣留言篇數的數目,建議數值在15以下。
$kaisu_disp = 1; #留言內容顯示留言者的最新留言篇數?(0:否 1:是)
$ikkiflg = 1 ; #你想要使用「一氣回覆模式」嗎?(0:否 1:是)
#當留言板轉換到「一氣回覆模式」的時候,在留言輸入表單與留言內容之間會出現以下文字,提醒使用者要注意的事情。
$ikkimsg = <<"EOM";
■現在你進入了「一氣回覆模式」,你可以同時回覆多篇留言。只要在想要回覆的留言串列下面的留言框,把對應的留言分別填寫好,然後再按上面表單的「一氣回覆」按鈕即可。(注意:你只可以選擇一個圖檔。)如果你按下「關閉一氣回覆」,即可回到正常模式,所有留言串列下面的留言框隨即消失。
|
EOM
#檢查留言內容的危險語法標籤
@errtag = ('table','meta','form','!--','embed','html','body','tr','td','th','a'); #危險語法標籤
#─<基本設定結束>────────────────────────────────────────────────────────
###############################################################################
#### Main Process START #####################################################
###############################################################################
$agent = $ENV{'HTTP_USER_AGENT'};
$agent =~ s/,/./g; $col2 = 1; $col2e = 1; #(驚直加入 - 調整英數欄位在Netscape瀏覽器的闊度)
if ($agent =~ /Mozilla/i && $agent !~ /compatible/i && $agent !~ /Opera/i) { $col2 = 0.8; $col2e = 0.6; } #(驚直修改 - 不套用於Opera瀏覽器)
$ENV{'TZ'} = "UTC-8"; #(驚直修改 - 使用中國及台灣地區時間)
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); #取得系統時間
$year = sprintf("%02d",$year + 1900); $month = $mon + 1; #(驚直修改 - 月日不前置0或空白)
$hour = sprintf("%02d",$hour); $min = sprintf("%02d",$min);
$week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat') [$wday]; $today = "$year/$month/$mday($week) $hour:$min"; #(驚直修改 - 加入年份顯示)
if ($agent !~ /MSIE/i || $agent =~ /Opera/i) { #(驚直修改 - 非IE瀏覽器使用特別樣式表)
$css_style = $css_style_; $css_style_e = $css_style_e_; $css_button = $css_button_;
}
&logchk ;
&cookieget; #取得COOKIE資訊
&decode ; #過濾留言內容
if ( $FORM{'action'} eq 'icondisp' ) { &icondisp ; } #顯示圖檔一覽表
if ( $FORM{'action'} eq 'maintenance' ) { #進入管理模式
&Maintenance;
&dataread ; #讀取記錄檔
}
if ( $FORM{'action'} eq 'update' ) { #更新記錄檔(編輯時)
&update ;
&cookieget; #取得COOKIE資訊
&dataread ; #讀取記錄檔
}
if ( $FORM{'action'} eq 'regist' ) { #寫入留言記錄
®ist ;
&cookieget; #取得COOKIE資訊
&dataread ; #讀取記錄檔
&logchk ;
$FORM{'action'} = "" ;
}
if ( $FORM{'action'} eq 'info' ) { &info ; } #顯示晉級資格說明
if ( $FORM{'action'} eq 'download' ) { &dataread ; &download ; } #下載留言記錄 #i001112
if ( $FORM{'action'} eq 'rankdisp' ) { &rankdisp ; } #顯示各人晉級狀態
&dataread ; #讀取記錄檔
&header ; #顯示HTML頁首
&header2 ;
&forminput if ( $FORM{'action'} ne 'oldlogfind' || $FORM{'oldlogno'} == 0 ) ; #輸入留言內容
&view ; #顯示留言記錄
&footer ; #顯示HTML頁尾
exit;
###############################################################################
#### Main Process END #######################################################
###############################################################################
###<--------------------------------------------------------------
###<--- 過濾留言內容&代入變數
###<--------------------------------------------------------------
sub decode{
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else { $buffer = $ENV{'QUERY_STRING'}; }
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
if ($tag eq 'yes') {
#禁止使用危險語法!!!
foreach ( @errtag ) {
if ($value =~ /<$_(.|\n)*/i) { &error("抱歉,留言板禁止使用危險語法!"); } #(驚直修改 - 針對"\n";
print "\n";
#<<>>
print "\n";
if ($backpicture) { $set = "background=\"$backpicture\""; if ( $bgcolor ) { $set .= " bgcolor=\"$bgcolor\"" ; } }
elsif ($bgcolor ) { $set = "bgcolor=\"$bgcolor\""; }
print "\n";
}
###<--------------------------------------------------------------
###<--- 顯示HTML頁首
###<--------------------------------------------------------------
sub header2 {
print "\n";
#print " | ";
if ( $cntfile ) {
#顯示計數器
$edt = "%0" .$cnt_keta . "d" ;
$COUNT = sprintf("$edt",$COUNT) ;
if ( $cnt_gif[0] ) {
for ( $i = 1 ; $i <= $cnt_keta ; $i++ ) {
$c = substr($COUNT,$i - 1 , 1 ) ;
print "$cnt_gif[$c]";
}
} else {
print "瀏覽人次 → $COUNT"; #(驚直修改 - 使用英文字形顯示純文字計數器)
}
} else {
print " ";
}
print " |
\n";
print "
\n";
#if ( $titlelogo ) {
# print "$titlelogo
\n";
#} else {
print "$title
\n";
#}
print "\n";
}
###<--------------------------------------------------------------
###<--- 顯示HTML頁尾
###<--------------------------------------------------------------
sub footer {
#<<<↓以下版權宣告部份不得刪除,但可略作修改。(尊重智慧財產權 — 請勿將中文化作者刪掉或改為你自己的名字)
print "\n";
print "