Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
第10章項(xiàng)目實(shí)戰(zhàn)——內(nèi)容管理系統(tǒng)《PHP網(wǎng)站開發(fā)實(shí)例教程(第3版)》學(xué)習(xí)目標(biāo)/Target
熟悉內(nèi)容管理系統(tǒng)的頁面效果,能夠說出內(nèi)容管理系統(tǒng)的主要功能。
掌握內(nèi)容管理系統(tǒng)后臺功能的實(shí)現(xiàn),能夠根據(jù)實(shí)現(xiàn)步驟實(shí)現(xiàn)后臺的相關(guān)功能。
掌握內(nèi)容管理系統(tǒng)前臺功能的實(shí)現(xiàn),能夠根據(jù)實(shí)現(xiàn)步驟實(shí)現(xiàn)前臺的相關(guān)功能。章節(jié)概述/可以開發(fā)各種不同類型的項(xiàng)目,內(nèi)容管理系統(tǒng)(tem,CMS)就是一種比較典型的項(xiàng)目。常見的門戶、新聞、博客、文章等類型的網(wǎng)站都可以利用CMS進(jìn)行搭建。CMS用于對信息進(jìn)行分類管理,將信息有序、及時地呈現(xiàn)在用戶面前,滿足人們發(fā)布信息、獲取信息的需求,保證信息的共享更加快捷和方便。本章將講解如何基于自定義框架開發(fā)內(nèi)容管理系統(tǒng)。目錄/.110.2項(xiàng)目展示內(nèi)容管理系統(tǒng)的功能實(shí)現(xiàn)項(xiàng)目展示10.1
先定一個小目標(biāo)!熟悉內(nèi)容管理系統(tǒng)的頁面效果,能夠說出內(nèi)容管理系統(tǒng)的主要功能。10.1項(xiàng)目展示內(nèi)容管理系統(tǒng)的前臺首頁:10.1項(xiàng)目展示內(nèi)容管理系統(tǒng)的后臺登錄頁面:10.1項(xiàng)目展示內(nèi)容管理系統(tǒng)的后臺首頁:10.1項(xiàng)目展示內(nèi)容管理系統(tǒng)的功能實(shí)現(xiàn)10.2
先定一個小目標(biāo)!掌握后臺功能的實(shí)現(xiàn),能夠根據(jù)步驟實(shí)現(xiàn)功能。10.2.1后臺功能實(shí)現(xiàn)后臺功能后臺用戶登錄頁面搭建驗(yàn)證碼10.2.1后臺功能實(shí)現(xiàn)欄目管理文章管理1.后臺用戶登錄后臺用戶登錄通常是系統(tǒng)的管理員登錄,登錄后對系統(tǒng)進(jìn)行維護(hù)。后臺用戶登錄功能的實(shí)現(xiàn)步驟:10.2.1后臺功能實(shí)現(xiàn)登錄MySQL,在myframe數(shù)據(jù)庫中創(chuàng)建用戶表,向表中插入一條數(shù)據(jù)。1在C:\web\www\myframe下創(chuàng)建app\Http\\admin目錄,實(shí)現(xiàn)后臺功能。2創(chuàng)建處理登錄相關(guān)業(yè)務(wù),與登錄相關(guān)的方法如下。index()方法:顯示登錄頁面,提示用戶輸入用戶名、密碼和驗(yàn)證碼。login()方法:接收登錄表單,返回登錄成功或登錄失敗的提示。logout()方法:退出登錄。captcha()方法:顯示驗(yàn)證碼。3后臺用戶登錄功能的實(shí)現(xiàn)步驟:10.2.1后臺功能實(shí)現(xiàn)創(chuàng)建myframe\.php文件,在App.php的run()方法中捕獲,在myframe\.php編寫success()方法和error()方法,實(shí)現(xiàn)Ajax交互。
4創(chuàng)建app\User.php模型文件,在login()方法中驗(yàn)證用戶名和密碼。5用戶登錄成功后,通過Session來記住登錄狀態(tài),并在下次請求中判斷用戶是否登錄。6在logout()方法中清除用戶的Session信息,實(shí)現(xiàn)退出登錄。72.驗(yàn)證碼考慮到網(wǎng)站上線后可能會遭受攻擊,為了保護(hù)后臺登錄功能的安全,需要增加一個驗(yàn)證碼功能,用戶登錄時顯示一張驗(yàn)證碼圖片,要求用戶輸入圖片中的字符,只有驗(yàn)證碼輸入正確,后臺才會處理用戶的登錄請求。驗(yàn)證碼功能的實(shí)現(xiàn)步驟如下:10.2.1后臺功能實(shí)現(xiàn)在myframe\Captcha.php中創(chuàng)建驗(yàn)證碼類,create()方法自動生成驗(yàn)證碼字符,show()方法生成驗(yàn)證碼圖像。1在控制器中使用驗(yàn)證碼類,生成驗(yàn)證碼圖像。2判斷用戶輸入的驗(yàn)證碼是否正確,驗(yàn)證碼驗(yàn)證成功后,該驗(yàn)證碼會立即過期,不允許被重復(fù)驗(yàn)證。33.頁面搭建用戶登錄成功以后,就會進(jìn)入后臺首頁。后臺頁面結(jié)構(gòu)主要分為3部分,分別是頂部、菜單和內(nèi)容區(qū)域。后臺頁面:10.2.1后臺功能實(shí)現(xiàn)頂部菜單內(nèi)容區(qū)域后臺頁面搭建的實(shí)現(xiàn)步驟:10.2.1后臺功能實(shí)現(xiàn)創(chuàng)建\views\admin\layout.html文件實(shí)現(xiàn)后臺頁面布局。
1在Request.php文件中添加isAjax()方法,用于判斷當(dāng)前請求是否為Ajax請求,在中調(diào)用isAjax()方法,判斷如果不是Ajax請求就返回布局視圖。2在layout.html的菜單位置添加“首頁”“欄目管理”“文章管理”菜單項(xiàng)。3修改的index()方法,顯示后臺首頁對應(yīng)的admin/index模板,將系統(tǒng)環(huán)境、MySQL版本、文件上傳限制、腳本執(zhí)行時限以及服務(wù)器時間等信息輸出到頁面中。44.欄目管理欄目用于對內(nèi)容進(jìn)行分類,如生活類、咨訊類、編程類等,用戶可以更高效地找到需要的信息。欄目管理的功能主要包括欄目的查詢、添加、修改和刪除。欄目管理的實(shí)現(xiàn)步驟:10.2.1后臺功能實(shí)現(xiàn)創(chuàng)建欄目表,字段為id、name(欄目名稱)和sort(排序),添加測試數(shù)據(jù)。1創(chuàng)建欄目表對應(yīng)的模型文件app\.php,在該文件中完成對欄目表的操作。2創(chuàng)建app\Http\\Admin\.php,創(chuàng)建index()方法讀取欄目列表。3在中編寫edit()方法,實(shí)現(xiàn)修改欄目。
4在中編寫delete()方法,實(shí)現(xiàn)刪除欄目。55.文章管理文章管理功能需要支持上傳文件。用戶可以上傳封面圖,由于文章記錄會越來越多,需要提供分頁查詢,方便用戶瀏覽。文章管理的實(shí)現(xiàn)步驟:10.2.1后臺功能實(shí)現(xiàn)創(chuàng)建文章表,字段為文章id、所屬欄目id、文章標(biāo)題、作者名、封面圖路徑、發(fā)布狀態(tài)、閱讀量、文章內(nèi)容以及創(chuàng)建時間,向文章表中添加測試數(shù)據(jù)。1創(chuàng)建文章表對應(yīng)的模型文件app\Article.php,在該文件中完成對文章表的操作。2創(chuàng)建app\Http\\Admin\.php,創(chuàng)建index()方法,讀取文章列表。3創(chuàng)建myframe\Page.php,實(shí)現(xiàn)分頁查詢,生成分頁的導(dǎo)航鏈接。4文章管理的實(shí)現(xiàn)步驟:10.2.1后臺功能實(shí)現(xiàn)在中創(chuàng)建edit()方法,顯示添加或修改文章頁面,引入在線編輯器Ueditor,添加save()方法保存修改后的文章。5在myframe\Request.php中創(chuàng)建hasFile()方法,判斷當(dāng)前文章是否有文件上傳,創(chuàng)建file()方法獲取文件信息,創(chuàng)建myframe\Upload.php文件實(shí)現(xiàn)文件上傳。6在中創(chuàng)建delete()方法,根據(jù)文章id刪除指定文章。7文章的欄目id依賴欄目表的記錄,當(dāng)刪除欄目時,該欄目下原有的文章的所屬分類就會出現(xiàn)問題,修改,將被刪除的欄目下的所有文章的欄目id設(shè)為0,表示未選擇欄目。8
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。