李懷俊 彭育強
摘 要: 針對目前常用的域名銷售系統存在的諸如在域名注冊資料獲取不便、域名閑置難以及時處理等問題,研究并實現了一套基于PHP語言的多功能域名銷售管理系統。介紹了系統的體系結構與設計思路,對基于MySQL的數據庫、各功能模塊等進行了描述;通過使用Smarty的前臺模板引擎,解決了對注冊商的域名進行分類、多條件管理、編輯等問題。系統運行表明,該方法符合域名管理規范,能有效提高域名管理質量。
關鍵詞: PHP; 域名銷售; MySQL; 數據庫表; smarty
中圖分類號:TP315 文獻標志碼:A 文章編號:1006-8228(2014)02-36-04
0 引言
域名是實現網絡訪問的基礎,沒有域名指數的增幅顯示,業界就無從得知網站的生存狀況。隨著國際互聯網的蓬勃發展,其應用滲透到社會生活的各個方面,成為人們生活和工作的基本環境。大量的企業應用互聯網絡開展電商業務,由此開始了注冊符合自己企業特征的網絡域名爭奪戰,在大量的域名資源已經被注冊的情況下,要獲得具有商業價值的域名,域名交易就成為不可缺少的一環[1]。
目前,在國內外應用中仍缺乏完善的Web域名銷售管理系統。有一小部分域名持有人擁有能實現域名展示、域名介紹和域名價格的Web站點,而大部分域名持有人僅僅擁有一些簡單的靜態html頁面組合,功能相對落后,頁面內容的添加和編輯都只能依靠對頁面的源碼進行修改[2],而且對域名注冊資料的獲取,客戶報價等都無法實現。
本文基于PHP技術和MySQL數據庫、Apache服務器環境和Smarty模板引擎開發系統,設計了Web域名多條件查詢和管理系統。該系統基于B/S模式,主要處理域名分類、查詢和文章發布等各環節,具有良好的人機界面;在相應的權限下,可方便地刪除數據;自動獲取域名注冊信息,包括注冊人、所屬注冊機構、注冊時間等內容,減少人工干預;對于獲得客戶報價或過期域名郵件提醒;對于域名和新聞管理列表,可根據組合查詢條件動態顯示查詢結果[3-4]。
1 系統體系結構
PHP(Hypertext Preprocessor)是一種服務器端HTML嵌入式腳本描述語言,在Web應用開發中得到了廣泛應用[5]。其最強大和最重要的特征就是跨平臺、面向對象、執行效率高。客戶端只需要安裝瀏覽器,即可通過HTTP協議向Apache服務器提出請求,服務器站點收到請求后,解析PHP文件,然后連接數據庫,執行指定的SQL語句。查詢到結果后返回給Apache服務器。Apache服務器根據數據庫中返回來的數據生成HTML文檔返回給瀏覽器。系統結構如圖1所示。
多功能域名銷售管理體系結構分為前臺和后臺兩個部分。
前臺頁面模板中,只需調用本系統獨有的模板標簽,即可根據使用者所喜好的樣式來展示各種不同內容,包括列表,文章列表,域名詳情頁面,文章詳情頁面,報價表單,欄目導航等。用戶打開前臺的頁面可輕松地瀏覽域名信息,可以根據多種條件組合查詢、獲取所需的域名信息,對于域名詳情頁,有對相應域名報價的入口功能,用戶可對心儀的域名進行報價,同時,前臺還可以針對搜索引擎進行優化,展示用戶需要的文章,例如站點公告,業界資訊等。
對于后臺管理,管理員可以對網站進行全面的管理,可以添加域名分類,系統允許添加無限級子分類;同時也可以對已有的域名分類,進行修改和排序;可對域名列表進行綜合管理,包括添加,編輯,刪除和排序等;可對文章分類和文章列表進行與域名分類同樣的管理。
2 系統設計
系統設計首先是提供域名發布功能和域名分類管理;其次是實現用戶交互,用戶可在前臺對心儀的域名進行報價;最后是實現對大量域名信息的綜合管理。要實現這龐大的功能,首先基于域名系統DNS(Domain Name System)、郵件傳輸協議SMTP協議(Simple Mail Transfer Protocol),通過識別不同的域名后綴,來取得相應的DNS服務器,通過網絡通信向服務器發送查詢請求,獲取相應的域名whois信息。前臺提供用戶報價入口。通過SMTP類,及時向管理員發送郵件通知。
2.1 功能模塊描述
根據域名管理系統應具有的基本功能,將系統分為12個功能模塊。
⑴ 域名批量添加/導入模塊:該模塊的主要功能是實現以不同方式來添加域名,且支持批量添加操作。添加方式主要有兩種,一種是文本形式,另一種是上傳TXT文件的形式。添加格式為:不同的域名以換行區分,域名與域名簡介以空格或以“~”隔開。域名批量導入的方式為上傳CSV格式的文件。由于幾乎所有注冊商用戶管理系統都有導出域名為CSV格式的功能,因此批量導入功能對于不同注冊商域名的匯總非常方便。
⑵ 域名whois模塊:該模塊主要用來獲取域名的注冊資料信息。通過socket通信將不同域名種類發送到相應的域名whois服務器,服務器將返回域名的注冊資料信息,包括注冊人、聯系郵箱、注冊日期、過期日期、所屬注冊商等。該模塊可以查詢的域名種類有86種,最常用的是com域名和cn域名。
⑶ 域名管理模塊:該模塊主要用來對列表中的域名進行刪除或編輯操作,是系統最為重要的模塊之一。系統列表支持對分類、后綴和用戶自定義關鍵詞進行組合查詢。域名刪除支持單個操作和多個操作,系統管理員可將不再需要管理的域名刪除。執行刪除操作時,系統有刪除確認提示,只有當管理員選擇確認的時候,域名才會被刪除,以避免域名被誤刪除。域名編輯是對域名信息表d_domain中的除ID以外的所有字段進行操作。對于域名的注冊資料信息,可以通過域名whois模塊自動獲取,這樣既保證信息準確,又減少了手工輸入量。
⑷ 域名分類管理模塊:該模塊主要用來管理域名分類信息。可以添加無限級的分類。在分類列表管理頁中,可以對分類進行添加,編輯,刪除和排序操作。每一個分類都有一個標識ID和父級分類標識,有利于搜索引擎對前臺分類列表頁的收錄效果。
⑸ 域名檢索模塊:該模塊主要用于域名的查找。用戶在查找輸入框中輸入關鍵詞,系統將此關鍵詞進行相似匹配。如果匹配成功,系統將得到的記錄格式化后輸出到瀏覽器,并將匹配到的關鍵字部分以紅色標記出來。
⑹ 報價管理模塊:該模塊用于客戶對域名的報價信息的管理。當用戶瀏覽域名信息時,對心儀的域名點擊相應的報價聯系,進入報價表單填寫頁,當用戶完成報價點擊“提交”時,系統則將客戶報價信息插入到數據表d_offer中,包括客戶填寫的姓名、聯系電話、郵箱、域名、價格。
⑺ 文章添加模塊:該模塊主要用于文章信息的錄入。內容輸入使用FCKeditor可視化HTML編輯器,FCKeditor是一個專門使用在網頁上,開放源代碼的所見即所得文字編輯器,它屬于輕量化,不需要太復雜的安裝步驟即可使用[6]。
⑻ 文章管理模塊:該模塊主要用來對列表中的文章進行刪除或編輯操作,其基本功能與域名管理模塊相似。同時實現文章的分類管理,分類可以添加子分類,且可以添加無限級的分類。其表單字段類型和功能與域名分類管理模塊一致。
⑼ 模板標簽dnlist模塊:該模塊主要是自定義的smarty標簽塊函數,用來指定域名列表。
⑽ 模板標簽arclist模塊:該模塊主要是自定義的smarty標簽塊函數,用來指定文章列表。
⑾ 模板標簽pagelist模塊:該模塊主要是自定義的smarty標簽塊函數,用來顯示分頁列表。
⑿ 報價郵件提醒模塊:該模塊主要用于當客戶對心儀域名報價時自動發郵件通知管理員。
2.2 數據庫設計
數據庫設計是域名管理系統的核心部分。數據庫設計直接決定系統的功能流程和運行系統的效率。本系統采用MySQL作為數據庫儲存長期保存的信息,數據庫名稱為newdomain,其中包含8張數據表,數據表統一以取domain(域名)的第一個字母”d”加下劃線為前綴,即”d_”。根據前面的設計規劃出的實體主要有管理員實體、客戶信息實體、域名信息實體、域名分類實體、文章信息實體、文章分類實體、系統信息實體。綜合上述各實體以及需求分析所得的各實體的關系,可得系統E-R圖如圖2所示。
3 基于Smarty的前臺模塊功能
Smarty是基于PHP的模板化引擎,它把程序應用邏輯和單個呈現邏輯分離,讓程序開發者專注于資料的控制或者功能的達成;而視覺設計師可專注于網頁的排版。Smarty具有強大的功能,主要包括①強大的表現邏輯:Smarty提供了適當的構造,能夠有條件地計算和迭代地處理數據;②模板編譯:為減少開銷,Smarty在默認情況下將模板轉換為可比較的PHP腳本,使得后續的調用速度更快;③緩存:Smarty還提供了緩存模板的可選特性,支持緩存不只是能生成緩存的內容,還能防止執行個別邏輯。④高度可配置性和可擴展性:Smarty的面向對象架構允許修改和擴展其默認行為[7-8]。此外,從一開始可配置性就是一個設計目標,為用戶提供了很大的靈活性,通過內置方法和屬性定制Smarty的行為。
以下介紹基于Smarty實現的模塊功能。
3.1 管理員驗證管理
創建管理員時,管理員密碼通過MD5()函數加密后保存到數據表d_admin中的password字段中。驗證時,系統首先查找數據庫,判斷填寫的用戶名是否存在,如果用戶名存在,則進而將用戶填寫的密碼通過md5加密,然后在數據庫中作相應用戶名記錄中的密碼比對,如果兩者相等則判定其登錄成功,并建立瀏覽器與服務之間的會話信息。登錄界面如圖3所示。
3.2 域名的添加
前面已經介紹了域名添加模塊中有兩種添加域名的格式。一種是文本格式,另外一種是導入CSV格式的方式。域名導入后的結果如圖4所示。
3.3 域名的分類
如前面所介紹,域名支持無限制分類。系統通過網址中的action參數來識別增加或編輯操作。分類管理界面如圖5所示。
3.4 域名列表
域名列表的的展示是根據網址中的分類(cid)參數,后綴(ltd)參數,關鍵詞(keyword)參數對數據庫進行查詢的結果,分頁大小(pagesize)參數結合分頁類對查詢結果進行分頁顯示如圖6所示。
3.5 域名的編輯
域名編輯是通過網址中的id參數獲取所要修改的域名標識,然后通過對數據表d_domain查詢,將該記錄下除ID以外的所有字段分別置于不同表單元素中,管理員對編輯表單填寫完成后,系統對該記錄下所有字段更新新的值。
3.6 模板標簽dnlist設計
模板標簽dnlist原理是在標簽屬性中添加控制參數,根據控制參數對數據表d_domain進行查詢,將返回的字段值復制給底層模板相應的字段,如圖7所示。
4 結束語
采用PHP編程語言、以MySQL數據庫及Apache服務器為開發環境、運用Smarty模板引擎是成功實現多功能域名管理系統的有效方案,比較其他web域名銷售管理系統,本文設計的PHP多功能域名銷售系統很好地解決了閑置域名不能通過有效的資源配置渠道及時售出、部分域名由于過期未能及時續費而被誤刪除、域名持有者由于無法獲得買方資料在價格談判過程中處于被動等若干實際問題[9-10]。此外,系統帶有文章閱讀功能,除了發布本站動態信息之外,還具備咨詢、互動功能,當使用者在文章內適當添加與域名相關的關鍵字時,即可通過搜索引擎為其網站帶來潛在的客戶。運行效果驗證了該新型PHP多功能域名銷售管理系統功能完善,可滿足行業多方面需求。
參考文獻:
[1] 中國互聯網絡信息中心(CNNIC).第32次中國互聯網絡發展狀況統計報告[R],2013.
[2] 薛虹.全球域名系統知識產權保護措施最新發展研究[J].知識產權,2012.36(1):82-91
[3] 鄒天思,潘凱華,劉中華.PHP數據庫系統開發完全手冊[M].人民郵電出版社,2012.
[4] 韓萬江.軟件工程案例教程[M].機械工業出版社,2008.
[5] 丁翔,仇寅,鄭滔.一種利用PHP防御SQL注入攻擊的方法[J].計算機工程,2011.37(11):153-155
[6] Jaimie Sirovich.搜索引擎優化高級編程[M].清華大學出版社,2008.
[7] Luke Welling, Laura Thomson. PHP and MySQL Web Develop-ment(3rd Edition)[M].USA: Sams,2008.
[8] Ken Coar, Rich Bowen. Apache Cookbook: Solutions andExamples for Apache Administrators[M]. USA: O'Reilly Media Inc.,2009.
[9] 仝戈,張武裝.Smarty在基于MVC框架的Web應用程序開發中的應用[J].科技信息,2009.78(4):839-840
[10] 王鳳玲.基于PHP+MYSQL的新聞發布系統的研究與實現[J].計算機應用與軟件,2012.29(2):234-236