本條目說明如何從舊版本身升級至新版本 (例: 2nd.Release 升級至 3rd.Release)。一般來說直接覆蓋即可升級,但由於有的時候新版本改動不少關鍵性的東西以致於直接覆蓋會忽略一些新修改,故新增此條目記載特定版本升級時的指引說明事項。
如有需要使用差異修正功能的項目,推薦使用 WinMerge (for Windows) 軟體作差異掃描及修正。
Table of Contents
|
一般升級方式
- 請記得先備份舊版 config.php (加上 img.log / tree.log 如果是 Log 後端的話) 以防萬一
- 解壓縮新版程式,將 lib 目錄內所有檔案覆蓋舊版程式位置以更新程式的函式庫
- 編輯新的 pixmicat.php,將 init(); 註解掉或刪除,類似第一次初始化的做法。最後存檔上傳更新主程式
- 開啟瀏覽器瀏覽版面,到系統資訊頁面確認版本號是否更新及有無其他錯誤訊息,如無其他問題便升級成功
有些版本升級需要做一些特別的應對動作,請參見下面說明。
PIO 版本
7th.Release → 8th.Release
密碼使用加密儲存
請使用公用程式的 genhash.php,產生加密後的密碼,並儲存於 config.php ADMIN_HASH 裡。
設定檔變更項目 (Diff)
6th.Release → 7th.Release
設定檔變更項目 (Diff)
--- config.php Sun Jul 03 11:07:46 2011 +++ config.php Sun Jan 13 13:26:50 2013 @@ -4,3 +4,3 @@ http://pixmicat.openfoundry.org/ -版權所有 © 2005-2011 Pixmicat! Development Team +版權所有 © 2005-2013 Pixmicat! Development Team @@ -23,3 +23,4 @@ // 伺服器常態設定 -define("PHP_SELF", 'pixmicat.php'); // 主程式名 (若是修改了主程式名,請配合修改) +define("DEBUG", false); // 是否產生詳細 DEBUG 訊息 +define("ROOTPATH", dirname(__FILE__).DIRECTORY_SEPARATOR); // 主程式根目錄 define("TIME_ZONE", '+8'); // 時區設定 (GMT時區,參照 http://wwp.greenwichmeantime.com/ ) @@ -76,2 +78,3 @@ define("USE_XHTML", 1); // 是否回傳 XHTML 檔頭讓瀏覽器以更嚴格的方式解析 [僅限瀏覽器支援者] (是:1 否:0) +define("TRUST_HTTP_X_FORWARDED_FOR", 0); // 是否利用HTTP_X_FORWARDED_FOR抓取Proxy後的真實IP。注意檔頭可能被偽造,若無特別需要請勿開啟 (是:1 否:0)
更新 /lib
這應該是每次更新新版本時要作的事,只是在這裡再提一次。因為新版改動不少核心的函式庫。請直接用新版的 /lib 來覆蓋舊版的 /lib 即可。
5th.Release → 6th.Release
建立 IFS 檔案索引表 (!非常重要!)
請使用 公用程式 的 rebuildifs.php 將目前本機內的所有圖檔建立一份索引檔案,6th.Release 開始使用這個索引來加速計算檔案大小。如果原本就是用遠端儲存方式的話那索引表 (fileioindex.dat) 應該已經存在,就不需要作這件事。
使用方法
1. 將 rebuildifs.php 放置到 PIO 版的根目錄下
2. 打開瀏覽器,直接輸入對應網址執行程式即可
成功之後應該可以看到 fileioindex.dat 檔案存在。
更新 /lib
這應該是每次更新新版本時要作的事,只是在這裡再提一次。因為新版改動不少核心的函式庫。請直接用新版的 /lib 來覆蓋舊版的 /lib 即可。
更新 mainstyle.css
行動裝置的版面支援是用 CSS 樣式表來達成。最後新增了幾行
/* Android / iOS */ @media only screen and (min-device-width: 240px) and (max-device-width: 640px) { html { font-size: 0.9em; padding: 10px; } /* 頁面基本字體大小,邊界 */ #toplink { text-align: left; } /* 頂部連結列取消置右 */ #fcom { max-width: 35ex; } /* 調整表單欄位 */ #fupfile { display: block; } input[type="text"] { max-width: 100% } ul { padding-left: 2em; } .img { margin: 0.5ex 0.5ex; max-width: 100%; height: auto; display: block; float: none; } /* 討論串圖片顯示樣式 */ .reply { clear: left; margin: 0.5ex 0 0 0; max-width: 100%; } /* 討論串回應樣式 */ .quote { margin: 5px 10px; } /* 內文內縮 */ .pushpost { padding: 0.8em; } #page_switch { clear: right; } /* 避免頁尾表格交疊 */ }
更新樣版檔案
IE8以上無法使用標準模式的問題已經獲得解決,且行動裝置的版面支援的關鍵 Viewport 也是在此檔案裡。請利用差異比對修正工具如 WinMerge 找出自行修改版和新版的不同並套上新修改。或者直接拿新檔案重新修改也可以。
mainstyle.css 也多了一行。
@media all{ /* 通用設定 */ .replywrap { display: table-cell; } /* 解決 IE8+ 無法選取討論串回應內文用 */ }
更新模組
已知因為樣版更動而造成影響的模組有 mod_pushpost 推文模組,請更新模組檔案
設定檔變更項目 (Diff)
主要是預覽圖相關的修改。可以產生 png, gif 等格式了。未來也不排除支援 WebP。
Index: /pixmicat/svn/PIO/config.php =================================================================== --- /pixmicat/svn/PIO/config.php (revision 806) +++ /pixmicat/svn/PIO/config.php (revision 807) @@ -7,15 +7,17 @@ 版權聲明: 此程式是基於レッツPHP!<http://php.s3.to/>的gazou.php、 双葉ちゃん<http://www.2chan.net>的futaba.php所改寫之衍生著作程式,屬於自由軟體, -以The Clarified Artistic License作為發佈授權條款。 -您可以遵照The Clarified Artistic License來自由使用、散播、修改或製成衍生著作。 +以Artistic License 2.0作為發佈授權條款。 +您可以遵照Artistic License 2.0來自由使用、散播、修改或製成衍生著作。 更詳細的條款及定義請參考隨附"LICENSE"條款副本。 發佈這一程式的目的是希望它有用,但沒有任何擔保,甚至沒有適合特定目的而隱含的擔保。 關於此程式相關的問題請不要詢問レッツPHP!及双葉ちゃん。 -如果您沒有隨著程式收到一份The Clarified Artistic License副本, +如果您沒有隨著程式收到一份Artistic License 2.0副本, 請瀏覽http://pixmicat.openfoundry.org/license/以取得一份。 + +"Pixmicat!", "Pixmicat", 及"圖咪貓"是Pixmicat! Development Team的商標。 */ /*---- Part 1:程式基本設定 ----*/ // 伺服器常態設定 @@ -58,7 +60,6 @@ define("CAP_ISHTML", 1); // 管理員キャップ啟動後內文是否接受HTML標籤 (是:1 否:0) // 功能切換 -define("USE_THUMB", 1); // 使用預覽圖機能 (使用:1 不使用:0) define("USE_FLOATFORM", 1); // 新增文章表單使用自動隱藏 (是:1 否:0) define("USE_SEARCH", 1); // 開放搜尋功能 (是:1 否:0) define("USE_UPSERIES", 1); // 是否啟用連貼機能 [開主題後自動指向到主題下以方便連貼] (是:1 否:0) @@ -98,11 +99,15 @@ define("RENZOKU2", 60); // 連續貼圖間隔秒數 // 預覽圖片相關限制 +define("USE_THUMB", 1); // 使用預覽圖機能 (使用:1 不使用:0) [gd, imagemagick, imagick, magickwand, repng2jpeg] define("MAX_W", 250); // 討論串本文預覽圖片寬度 (超過則自動縮小) define("MAX_H", 250); // 討論串本文預覽圖片高度 define("MAX_RW", 125); // 討論串回應預覽圖片寬度 (超過則自動縮小) define("MAX_RH", 125); // 討論串回應預覽圖片高度 -define("THUMB_Q", 75); // 預覽圖片之品質 (1-100, 建議預設75,越高品質越好但檔案也越大) +$THUMB_SETTING = array( // 預覽圖生成設定 + 'Format' => 'jpg', + 'Quality' => 75 +); // 外觀設定 $ADDITION_INFO = ""; // 可在表單下顯示額外文字
4th.Release.3 → 4th.Anniversary
沒特別修改動作,直接將所有 PHP 更新即可 (記得 init(); 要拿掉)
記得版面所使用的樣板檔案 (通常是 inc_pixmicat.tpl) 也需要一併更新,針對 IE8 的版面部分的修正在這個檔案內。
4th.Release.2 → 4th.Release.3
FTP, Satellite 不將預覽圖送至遠端功能
config.php 內 FILEIO_PARAMETER 的設定多了一項參數,可以選擇是否要將預覽圖上傳到遠端。要是遠端的速度太慢,可以考慮將檔案較小的預覽圖留在本機,這樣可以讓使用者較快看到。
參數: 預覽圖是否上傳至遠端 (true: 是, false: 否,使用本機檔案)
詳細解說和範例請見 FileIO 條目。
mod_adminenhance 管理工具增強組合包
4th.Release.3 版本再度強化了 PMS 模組系統和增加了前端管理功能,能夠讓模組更深入接觸到管理層面。為配合此功能撰寫了 mod_adminenhance,推薦下載使用。
套用之後前端管理將會多出一些方便的功能,有IP 加到黑名單 (鎖 Class C)、圖檔 MD5 加到黑名單和停止/恢復討論串功能。可以一次勾取想要處理的文章後選取特定功能再執行,對於管理版面可說是方便不少。
設定檔變更項目 (Diff)
-define("PHP_SELF", basename($_SERVER['SCRIPT_FILENAME'])); // 此程式名 (此欄不需修改) +define("PHP_SELF", 'pixmicat.php'); // 主程式名 (若是修改了主程式名,請配合修改)
4th.Release → 4th.Release.2
PIO 結構版本升級 (V2 → V3)
請先執行 公用程式 的 piov2tov3.php 為您的舊有資料作結構升級動作。取得來源及執行方式等相關說明請參照條目解說。
新增預覽圖生成物件
設定檔的 USE_THUMB 可以設為下列:
- 0 (關閉)
- 1, 'gd' (GD Library)
- 'imagemagick' (ImageMagick convert 執行檔)
- 'imagick' (IMagick Library)
- 'magickwand' (MagickWnad Library)
- 'repng2jpeg' (repng2jpeg 執行檔)
是否支援這些預覽圖生成方式,可以使用公用程式的 checkenv.php 檢測。
新增回應頁面顯示快取功能
此版為減低系統負荷,回應頁面也仿照索引頁面可以自動快取 (USE_RE_CACHE = 1),在文章沒有更新的情況下都直接以快取輸出減少不必要的操作。程式以 /cache 資料夾作為快取存放處,這個資料夾在初次安裝使用 4th.Release.2 時會在 init() 程序自動生成,但自舊版升級的使用者可能不會去執行到 init() 因此可能不會自動生成。如有此種情況請手動於程式根目錄下新增名為 cache 的目錄,權限設為 777,這樣就可以正常儲存快取。
文章自動刪除機制變更
設定檔的 LOG_MAX 固定以文章數作為刪除判斷已經取消,取而代之的是更有彈性的判斷機制 $LIMIT_SENSOR。可同時使用多個物件作判斷。
目前可使用這些判斷物件:
- 'ByPostCountCondition' => (最大文章數) 以總文章篇數作為刪除判斷 (ex: 500) 即舊有 LOG_MAX 效果
- 'ByThreadCountCondition' => (最大討論串數) 以總討論串數作為刪除判斷 (ex: 20)
- 'ByThreadAliveTimeCondition' => (討論串保留天數) 以討論串生存時間作為刪除判斷 (ex: 7)
預設樣板檔案更新
此版略為修正 PTE 樣版的架構,故預設樣板 inc_pixmicat.tpl 也同步更新。如果有自行修改的使用者煩請自行對檔案作差異修正,保留自有修改。
設定檔變更項目 (Diff)
--- config.php (revision 435) +++ config.php (working copy) @@ -21,3 +21,3 @@ // 伺服器常態設定 -define("PHP_SELF", basename($_SERVER['PHP_SELF'])); // 此程式名 (此欄不需修改) +define("PHP_SELF", basename($_SERVER['SCRIPT_FILENAME'])); // 此程式名 (此欄不需修改) define("TIME_ZONE", '+8'); // 時區設定 (GMT時區,參照 http://wwp.greenwichmeantime.com/ ) @@ -73,2 +73,4 @@ define("USE_CATEGORY", 1); // 是否開啟使用類別標籤分類功能 (是:1 否:0) +define("USE_RE_CACHE", 1); // 是否使用回應頁面顯示快取功能 (是:1 否:0) +define("USE_XHTML", 1); // 是否回傳 XHTML 檔頭讓瀏覽器以更嚴格的方式解析 [僅限瀏覽器支援者] (是:1 否:0) @@ -106,4 +108,4 @@ $ADDITION_INFO = ""; // 可在表單下顯示額外文字 +$LIMIT_SENSOR = array('ByPostCountCondition'=>500); // 文章自動刪除機制設定 define("TEMPLATE_FILE", 'inc_pixmicat.tpl'); // 樣板位置 -define("LOG_MAX", 500); // 記錄檔保留之最大資料筆數 define("PAGE_DEF", 15); // 一頁顯示幾篇討論串
3rd.Release → 4th.Release
強迫使用 PTE 作為預設排版引擎
為提升 PTE 重要性及清除額外程式碼,4th.Release 版本把內建輸出程式碼刪除,改為完全靠 PTE 排版輸出,達到較大的彈性。因此請記得上傳新的樣版檔案 (inc_pixmicat.tpl) 並使用。
函式庫整合至 /lib 目錄
新版本為了美觀,將過去散列在根目錄的 lib_*.php 還有 pio, fileio 目錄整合至 /lib 目錄並修改部分目錄名稱。如此根目錄的舊有檔案就不必要,請手動修改。
以下是可直接刪除的檔案及目錄列表:
/pio (PIO 函式庫)
/fileio (FileIO 函式庫)
lib_fileio.php (FileIO Kernel Switcher)
lib_pio.php (PIO Kernel Switcher)
lib_pte.php (內嵌樣版函式庫)
lib_common.php (外觀及共用函式)
時間區域校正
新版本因避免不同伺服器、資料後端造成的時區問題影響討論串先後次序,將統一以 UTC 時區儲存。這樣不同後端匯入匯出時將保持正確的時區設定。但是後疑症是在一段時間 (例如 UTC+8 就需要 8 小時的適應時間) 之內將會造成討論串無法推文等問題。請耐心等待適應時間經過,爾後便可正確工作。
新增資料後端匯入匯出功能
在 PIO 0.4 版本中實作了資料的匯入匯出功能,可以匯出 A 後端後再匯入至 B 後端。需要公用程式 pio2pio.php 的協助。
設定檔變更項目 (Diff)
Index: config.php =================================================================== --- config.php (revision 299) +++ config.php (working copy) @@ -21,6 +21,7 @@ // 伺服器常態設定 define("PHP_SELF", basename($_SERVER['PHP_SELF'])); // 此程式名 (此欄不需修改) define("TIME_ZONE", '+8'); // 時區設定 (GMT時區,參照 http://wwp.greenwichmeantime.com/ ) +define("PIXMICAT_LANGUAGE", 'zh_TW'); // 語系語定 define("HTTP_UPLOAD_DIFF", 50); // HTTP上傳所有位元組與實際位元組之允許誤差值 ini_set("memory_limit", '32M'); // PHP運行的最大記憶體使用量 (php內定8M / 建議32M) @@ -65,20 +66,24 @@ define("AUTO_LINK", 1); // 討論串文字內的URL是否自動作成超連結 (是:1 否:0) define("KILL_INCOMPLETE_UPLOAD", 1); // 自動刪除上傳不完整附加圖檔 (是:1 否:0) define("ALLOW_NONAME", 1); // 是否接受匿名發送 (強制砍名:2 是:1 否:0) -define("PROXY_CHECK", 0); // 限制Proxy寫入 (是:1 否:0) define("DISP_ID", 2); // 顯示ID (強制顯示:2 選擇性顯示:1 永遠不顯示:0) define("CLEAR_SAGE", 0); // 使用不推文模式時清除E-mail中的「sage」關鍵字 (是:1 否:0) define("USE_QUOTESYSTEM", 1); // 是否打開引用瀏覽系統 [自動轉換>>No.xxx文字成連結並導引] (是:1 否:0) define("SHOW_IMGWH", 1); // 是否顯示附加圖檔之原檔長寬尺寸 (是:1 否:0) define("USE_CATEGORY", 1); // 是否開啟使用類別標籤分類功能 (是:1 否:0) +// 模組載入 +$ModuleList = array(); +//$ModuleList[] = 'mod_rss'; +//$ModuleList[] = 'mod_catalog'; + // 封鎖設定 -define("DNSBL_CHECK", 0); // DNS-based Blackhole List(DNSBL) 黑名單功能 (關閉:0, 數字:使用伺服器數目) -$DNSBLservers = array('sbl-xbl.spamhaus.org', 'list.dsbl.org', 'bl.blbl.org', 'bl.spamcop.net'); // DNSBL伺服器列表,可自行增加 -$DNSBLWHlist = array(''); // DNSBL白名單,排除被列為黑名單的項目 (為求簡便請以IP位置輸入而非主機位置名稱) +define("BAN_CHECK", 0); // 綜合性封鎖檢查功能 (關閉:0, 開啟:1) +$BANPATTERN = array(); // IP/Hostname封鎖黑名單 +$DNSBLservers = array(0, 'sbl-xbl.spamhaus.org', 'list.dsbl.org', 'bl.blbl.org', 'bl.spamcop.net'); // DNSBL伺服器列表 (首項:使用伺服器個數) +$DNSBLWHlist = array(); // DNSBL白名單 (請輸入IP位置) $BAD_STRING = array("dummy_string","dummy_string2"); // 限制出現之文字 $BAD_FILEMD5 = array("dummy","dummy2"); // 限制上傳附加圖檔之MD5檢查碼 -$BAD_IPADDR = array("addr.dummy.com","addr2.dummy.com"); // 限制之主機位置名稱 // 附加圖檔限制 define("MAX_KB", 2000); // 附加圖檔上傳容量限制KB (php內定為最高2MB) @@ -99,7 +104,6 @@ // 外觀設定 $ADDITION_INFO = ""; // 可在表單下顯示額外文字 -define("USE_TEMPLATE", 0); // 是否使用樣板 define("TEMPLATE_FILE", 'inc_pixmicat.tpl'); // 樣板位置 define("LOG_MAX", 500); // 記錄檔保留之最大資料筆數 define("PAGE_DEF", 15); // 一頁顯示幾篇討論串 @@ -108,11 +112,13 @@ define("RE_PAGE_DEF", 30); // 回應模式一頁顯示幾筆回應內容 (分頁用,全部顯示:0) define("MAX_RES", 30); // 回應筆數超過多少則不自動推文 (關閉:0) define("MAX_AGE_TIME", 0); // 討論串可接受推文的時間範圍 (單位:小時,討論串存在超過此時間則回應皆不再自動推文 關閉:0) -define("RE_COL", '#789922'); // >標註引用回文顏色 define("COMM_MAX", 2000); // 內文接受Bytes數 (注意:中文字為2Bytes) define("BR_CHECK", 0); // 文字換行行數上限 (不限:0) define("STATIC_HTML_UNTIL", -1); // 更新文章時自動生成的靜態網頁至第幾頁止 (全部生成:-1 僅入口頁:0) define("GZIP_COMPRESS_LEVEL", 3); // PHP動態輸出頁面使用Gzip壓縮層級 (關閉:0 啟動:1~9,推薦值:3) +define("DEFAULT_NOTITLE", '無標題'); // 預設文章標題 +define("DEFAULT_NONAME", '無名氏'); // 預設文章名稱 +define("DEFAULT_NOCOMMENT", '無內文'); // 預設文章內文 /*---- Part 3:Anti-SPAM 防止垃圾訊息機器人發文 ----*/ /* 欄位陷阱 (Field Trap) @@ -125,10 +131,4 @@ define("FT_EMAIL", 'ObHGyhdTR'); // E-mail欄位 define("FT_SUBJECT", 'SJBgiFbhj'); // 標題欄位 define("FT_COMMENT", 'pOBvrtyJK'); // 內文欄位 - -/* CAPTCHA驗證圖像 (CAPTCHA AuthImage) -介紹: -最常見於防範Spam的方法,正因為它有效才會被廣泛使用。 -*/ -// Not finish yet. ?>
Legacy 版本 (Log / MySQL 版本)
3rd.Release.8 → 4th.Anniversary
沒特別修改動作,直接將所有 PHP 更新即可 (記得 init(); 要拿掉)
3rd.Release.7 → 3rd.Release.8
什麼都沒變,直接把 pixmicat.php 主程式更新即可 (記得 init(); 要拿掉)
3rd.Release.6 → 3rd.Release.7
設定檔變更項目
-define("PHP_SELF", basename($_SERVER['SCRIPT_FILENAME'])); // 此程式名 (此欄不需修改) +define("PHP_SELF", 'pixmicat.php'); // 主程式名 (若是修改了主程式名,請配合修改)
3rd.Release.5 → 3rd.Release.6
設定檔變更項目
-define("PHP_SELF", basename($_SERVER["PHP_SELF"])); // 此程式名 (此欄不需修改) +define("PHP_SELF", basename($_SERVER['SCRIPT_FILENAME'])); // 此程式名 (此欄不需修改)
3rd.Release.4 → 3rd.Release.5
設定檔變更項目 (Diff)
Index: config.php =================================================================== --- config.php (revision 300) +++ config.php (working copy) @@ -53,18 +53,17 @@ define("AUTO_LINK", 1); // 討論串文字內的URL是否自動作成超連結 (是:1 否:0) define("KILL_INCOMPLETE_UPLOAD", 1); // 自動刪除上傳不完整附加檔案 (是:1 否:0) define("ALLOW_NONAME", 1); // 是否接受匿名發送 (強制砍名:2 是:1 否:0) -define("PROXY_CHECK", 0); // 限制Proxy寫入 (是:1 否:0) define("DISP_ID", 2); // 顯示ID (強制顯示:2 選擇性顯示:1 永遠不顯示:0) define("CLEAR_SAGE", 0); // 使用不推文模式時清除E-mail中的「sage」關鍵字 (是:1 否:0) define("USE_QUOTESYSTEM", 1); // 是否打開引用瀏覽系統 (自動轉換>>No.xxx文字成連結並導引) // 封鎖設定 -define("DNSBL_CHECK", 0); // DNS-based Blackhole List(DNSBL) 黑名單功能 (關閉:0, 數字:使用伺服器數目) -$DNSBLservers = array('sbl-xbl.spamhaus.org', 'list.dsbl.org', 'bl.blbl.org', 'bl.spamcop.net'); // DNSBL伺服器列表,可自行增加 -$DNSBLWHlist = array(''); // DNSBL白名單,排除被列為黑名單的項目 (為求簡便請以IP位置輸入而非主機位置名稱) +define("BAN_CHECK", 0); // 綜合性封鎖檢查功能 (關閉:0, 開啟:1) +$BANPATTERN = array(); // IP/Hostname封鎖黑名單 +$DNSBLservers = array(0, 'sbl-xbl.spamhaus.org', 'list.dsbl.org', 'bl.blbl.org', 'bl.spamcop.net'); // DNSBL伺服器列表 (首項:使用伺服器個數) +$DNSBLWHlist = array(); // DNSBL白名單 (請輸入IP位置) $BAD_STRING = array("dummy_string","dummy_string2"); // 限制出現之文字 -$BAD_FILEMD5 = array("dummy","dummy2"); // 限制上傳附加檔案之MD5檢查碼 -$BAD_IPADDR = array("addr.dummy.com","addr2.dummy.com"); // 限制之主機位置名稱 +$BAD_FILEMD5 = array("dummy","dummy2"); // 限制上傳附加圖檔之MD5檢查碼 // 附加檔案限制 define("MAX_KB", 2000); // 附加檔案上傳容量限制KB (php內定為最高2MB) @@ -99,6 +99,9 @@ define("STATIC_HTML_UNTIL", -1); // 更新文章時自動生成的靜態網頁至第幾頁止 (全部生成:-1 僅入口頁:0) define("SHOW_IMGWH", 1); // 是否顯示附加檔案之原檔長寬尺寸 (是:1 否:0) define("GZIP_COMPRESS_LEVEL", 3); // PHP動態輸出頁面使用Gzip壓縮層級 (關閉:0 啟動:1~9,推薦值:3) +define("DEFAULT_NOTITLE", '無標題'); // 預設文章標題 +define("DEFAULT_NONAME", '無名氏'); // 預設文章名稱 +define("DEFAULT_NOCOMMENT", '無內文'); // 預設文章內文 /*---- Part 3:Anti-SPAM 防止垃圾訊息機器人發文 ----*/ /* 欄位陷阱 (Field Trap)
預覽網頁:
關閉預覽