天天看點

php網頁 安裝插件,插件安裝流程

下述的步驟隻是按照通用流程進行說明,如果與插件安裝說明中的描述不符,請以插件提供者的描述為準。

下載下傳所需的插件

PHPWind百款插件,集大家所愛,請下載下傳适合您目前論壇情況的插件,并仔細閱讀插件安裝說明。

按插件安裝說明修改程式、模闆、上傳插件

插件上傳非常簡單,将插件目錄上傳到論壇根目錄下的hack檔案夾下即可。

安裝插件

上傳完畢後,進入論壇背景->風格插件->插件中心,在"未安裝插件"欄目下找到該插件,選擇安裝。

插件管理

進入論壇背景->風格插件->插件中心,在"已安裝插件"欄目下找到該插件,開啟插件、設定插件參數,開始使用該插件。

插件目錄結構,以及檔案名約定規則

舉例插件名稱為打工插件,唯一ID為work,那麼插件的檔案夾名稱應該跟唯一ID保持一緻,其所有檔案應該存放在 hack/work目錄下,以下内容将以此插件為例說明。

1)插件根目錄 hack/work目錄

存放插件主要檔案,包括在根目錄下的檔案内容如下:

index.php 插件前台主檔案,如果不存在此檔案,插件則不顯示前台界面。

admin.php 插件背景主檔案,如果不存在此檔案,插件則無背景管理功能。

sql.txt 插件安裝所需要執行的SQL語句,禁止Drop PHPWind自身資料以及删除已有資料等危險操作。如果不需要執行SQL語句變動資料庫,可以不存在此檔案。

readme.txt 插件使用說明,來提供給使用者相關說明文檔。

倘若無前台顯示/背景設定等,可以沒有相應的檔案,如果有相應功能,則檔案命名必須按照指定規則。

2)圖檔目錄 hack/work/image

此目錄存放插件檔案中所使用到的圖檔檔案,強烈要求在檔案中使用$hkimg變量來指定此目錄,這樣指定目錄将會讓檔案有極大的靈活性。

3)插件包含檔案 hack/work/require

倘若插件比較大,可以把一些常用的函數寫成檔案放入到require檔案夾。

4)插件模闆檔案夾 hack/work/template

不同于5.0之前的版本,所有模闆均放置到template下,前台放置于template/wind 背景放置于template/admin,而現有的插件體系規定所有的插件模闆均放置在這一個目錄下,不再需要分别放到兩個檔案夾中。

5)緩存檔案

出于檔案777屬性考慮,以及緩存檔案的統一部署,建議插件開發者将緩存檔案存儲為data/bbscache 目錄下(此目錄已經可寫,否則無法使用), 同時,出于進一步的為插件使用者着想,建議緩存檔案使用程式生成,來避免第一次使用插件時,因為沒有緩存檔案或者緩存檔案不可寫而導緻的錯誤--我們必須 考慮到,部分使用者不熟悉電腦操作,并不了解如何設定檔案777屬性,是以建議并不附帶預設的緩存檔案,而預設的緩存檔案,在插件使用者第一次使用的時候, 自動生成到data/bbscache目錄下,這樣将避免插件安裝中頻繁出現的777問題。[備注提示:一般附帶緩存的檔案,可内置某些預設值,然後插件 完成安裝之後,使用者應該進行一次設定送出來儲存它所需要的設定,在這個時候設定再生成緩存檔案到data/bbscache目錄下一個緩存檔案,能夠有 效的避免需要設定777的問題]

PHPWind插件開發代碼安全基礎及簡單檢測

資料過濾

$_GET、$_POST的變量通過InitGP() or GetGP() 來擷取。确認為數值為變量要(int) or (float)強制轉換,如:$tid = (int)GetGP('tid'); 。字元串變量要經過Char_cv()過濾,如:$subject = Char_cv($GetGP('subject'));。在PW7中,InitGP() 預設開啟Char_cv()過濾,是以不能版本間的相容問題得處理好,避免有效内容出錯。

$_SERVER變量,在PHPWind7中通過全局變量$pwServer或GetServer() 來讀取,而在其他版本中,對單獨用到的,必須經過addslashes() or Char_cv().

SQL注入

SQL語句中的變量,在PHPWind7中,保證最後經過過濾函數pwEscape() 、 pwImplode() 、pwSqlSingle() 、 pwSqlMulti() 。如:$tbid = $db->get_value('SELECT ptable FROM pw_threads WHERE tid='.pwEscape($tid,false));

而在其他版本,SQL語句中的變量兩邊必需加個單引号,同時,變量必需是經過了轉義的。特别注意從資料庫中讀取出來的值再次寫入資料庫時,得進行轉義,避免二次注入。

跨站腳本

輸出到模闆HTML的字元串變量,保證都是經過Char_cv().

杜絕直接在HTML模闆中寫類似$_GET、$_POST、$_SERVER等變量

檔案包含

Include() or require() 檔案路徑包含變量時,必需經過Pcv()的過濾,如include_once Pcv(D_P.'data/bbscache/'.$filename);(責任編輯:大寶庫)