確認需求
- 要有登入機制,讓管理員能夠登入到管理後台 (註1)
- 身為一個管理員,要能夠新增文章、編輯文章、刪除文章
- 新增文章時要有標題以及內文(串接 CKEditor)
- 身為一個訪客,在首頁要能看到最新的五篇文章
- 全文列表功能,能看到所有文章
- 文章分類功能,能在後台管理分類列表,並可在分類顯示畫面依據類別顯示不同文章
- read more 功能,點選之後可以觀看完整文章
- 分頁功能
註1:
- 後台要有彈性的管理文章機制,會顯示所有文章,可以設定文章類別,可以編輯及刪除。
也可以進入管理文章類別的頁面,用於編輯及新增「文章類別」。
註2:
- 解決明碼問題、SQL Injection 攻擊防護以及 XSS 攻擊防護
資料庫規劃
紀錄所需要的 table 及內容
user :
(會員只會有管理員一人,不開放外人註冊,所以不加上權限功能)
- id :會員 id
- username : 會員帳號 (獨一)
- password : 會員密碼
- created_at : 註冊時間
post :
id : 文章 id
user_id : (關聯 user.id)
category_id : (關聯 category.id)
title : 文章標題
content : 文章內容
is_deleted : 是否為刪除狀態
created_at : 新增時間
updated_at : 最後更新時間
deleted_at : 刪除時間
category :
id : 類別 id
name : 類別名稱
text : 類別說明
is_deleted : 是否為刪除狀態
created_at : 新增時間
updated_at : 最後更新時間
deleted_at : 刪除時間
檔案路由規劃
index.php (首頁)
- 登入按鈕 -> 導到 login.php (登入頁面)
- 登出按鈕 -> 執行 handle_logout.php 登出程式 -> 導回 index.php
- 發佈文章按鈕 -> 導到 add_post.php (發佈文章頁面)
- read more 按鈕 -> 導到 post.php (單一文章頁面)
- 分類文章按鈕 -> 導到 category.php (分類文章頁面)
- 全文列表按鈕 -> 導到 list.php (全文列表頁面)
- 編輯文章按鈕 -> 導到 update_post.php (編輯文章頁面)
- 刪除文章按鈕 -> 執行 handle_delete_post.php 刪除文章程式 -> 導回 index.php
- 後台管理按鈕 -> 導到 backstage.php (後台管理頁面)
login.php (登入頁面)
- 送出按鈕 -> 執行 handle_login.php 登入程式 -> 導回 index.php
add_post.php (發佈文章頁面)
- 送出按鈕 -> 執行 handle_add_post.php 發佈文章程式 -> 導回 index.php
update_post.php (編輯文章頁面)
- 更改文章類別的下拉式選單
- 送出按鈕 -> 執行 handle_update_post.php 編輯文章程式 -> 紀錄上一頁網址,並導回上一頁
post.php (顯示單一文章頁面)
- 編輯文章按鈕 -> 導到 update_post.php (編輯文章頁面)
- 刪除文章按鈕 -> 執行 handle_delete_post.php 刪除文章程式 -> 導回 index.php
category.php (分類文章頁面)
- 點選文章標題 -> 導到 post.php?id=id (顯示單一文章頁面)
- 編輯文章按鈕 -> 導到 update_post.php (編輯文章頁面)
- 刪除文章按鈕 -> 執行 handle_delete_post.php 刪除文章程式 -> 導回 index.php
list.php (全文列表頁面)
- 點選文章標題 -> 導到 post.php?id=id (顯示單一文章頁面)
- 編輯文章按鈕 -> 導到 update_post.php (編輯文章頁面)
- 刪除文章按鈕 -> 執行 handle_delete_post.php 刪除文章程式 -> 導回 index.php
backstage.php (後台管理頁面)
- 編輯文章按鈕 -> 導到 update_post.php (編輯文章頁面)
- 刪除文章按鈕 -> 執行 handle_delete_post.php 刪除文章程式 -> 導回 backstage.php
- 文章類別管理按鈕 -> 導到 category_manage.php (文章類別管理頁面)
category_manage.php (文章類別管理頁面)
- 更新文章類別按鈕 -> 執行 handle_update_category.php 更新文章類別程式 -> 導回 category_manage.php
- 新增文章類別按鈕 -> 執行 handle_create_category.php 新增文章類別程式 -> 導回 category_manage.php
開發流程規劃
- index.php 切版
- 「建立」顯示文章功能
- add_post.php 切版
- 「建立」新增文章功能
- post.php 切版
- login.php 切版
- 「建立」會員登入功能
- 「建立」會員登出功能
- 設定 SESSION 判斷登入狀態
- 「修改」新增文章功能 - 非登入狀態不可使用
- update_post.php 切版
- 「建立」編輯文章功能
- 「建立」刪除文章功能
- 「修改」編輯文章功能 - 非登入狀態不可使用
- 「修改」刪除文章功能 - 非登入狀態不可使用
- category.php 切版
- 「建立」點選標題導到單一文章功能
- list.php 切版
- 「建立」點選標題導到單一文章功能
- 「建立」文章分頁功能
- backstage.php 切版
- 「建立」取得所有文章資料功能
- 「修改」編輯文章功能 - 可判斷上一頁是首頁還是後台,導回正確頁面
- 「建立」後台權限驗證 - 非登入狀態導回首頁
- category_manage.php 切版
- 「建立」新增文章類別功能
- 「建立」編輯文章類別功能
- 「建立」後台權限驗證 - 非登入狀態導回首頁