由於題目有先附帳號資料,所以我們可以先把資料表建好,並直接在資料表中建立資料,進而先完成會員登入的功能;接著我們要來製作註冊會員的功能。
[技能檢定]題組二 步驟6 建置會員登入/登出功能
我們先來製作登入/登出功能,因為本題組有不少功能會使用登入狀態來區分使用者可以使用的功能,依據題意,這邊要使用ajax來製作會比較適當,也比較好呈現題目要求的各項提示訊息。
[技能檢定]題組二 步驟5 建置主選單區、動態文字廣告及頁尾版權區
這邊其實幾乎算送分了,因為主選單的內容己經在版型檔案中先做好了,連背景圖都設定好了,所以這邊唯一需要做的是把動態文字廣告的字打上去即可,這邊要注意的是動態文字廣告區的右側要留點空間給登入資訊使用。
[技能檢定]題組二 步驟4 建置網站標題區
這邊我們先來處理網站標題區,這邊比較麻煩的是瀏灠人次不是採總計,而是分日計算然後再總計;雖然題目沒有指示是否要和第一題一樣的機制,但我們在設計上為了避免瀏灠人次一直跳動,所以還是採用session來紀錄使用者的進站狀況,關閉瀏灠器再開才會重新計算;
[技能檢定]題組二 步驟3 建立Controller及共用函式檔
整理好素材及開完資料表後,接著我們會製作DB類別檔,把會用到的一些功能都封裝在DB類別中,再透過繼承去延伸各個需要的功能
建立各資料表的繼承類別
DB類別請參考先前關於DB class的解釋:
[技能檢定]網頁乙級檢定-前置作業-程式功能整合測試
在 Controller 目錄下建立以下檔案,原則上是一張資料表對應一個檔案,其中 DB.php 是父類別:
接著在每個類別檔中引入DB.php,並且建立繼承的類別:
Controller/Viewer.php
1 | include_once "DB.php"; |
Controller/User.php
1 | include_once "DB.php"; |
Controller/News.php
1 | include_once "DB.php"; |
Controller/Que.php
1 | include_once "DB.php"; |
Controller/Log.php
1 | include_once "DB.php"; |
建完各個類別後,為了後續的操作方便,我們將這些類別都引入到一個檔案中,而這個檔案又會分別被 index.php
及 backend.php
引入,相當於整個網站的所有頁面都可以引用到這個檔案的內容。
/base.php
1 | session_start(); //啟用session功能 |
接著將這個檔案引入到 index.php
及 backend.php
中:
/index.php 、 /backend.php
1 | <?php include_once "base.php"; ?> |
[技能檢定]題組二 步驟2 建立資料表
[技能檢定]題組二 步驟1 切版、建置前後台畫面
開立
./css
,./js
,./icon
,./api
,/view
等常用目錄以利檔案分類及管理將素材檔中的
.css
,.js
, 及icon
圖檔複製到相應的目錄下
[技能檢定]題組一 步驟22 處理登入功能及相關連結修改
根據版型的提示,前台有一個登理登入的按鈕可以連到登入畫面,登入後到後台時有一個按鈕可以登出,而如果在登入的狀態下停在前台時,原本的管理登入按鈕會變成是可以跳到後台的按鈕,這表示我們需要有一個機制來記錄管理員的登入狀態,才能根據這個狀態對按鈕做出不同的功能,而後台的管理登出按鈕,題目只要求可以跳到管理登入的畫面,並沒有要求要做出真正的登出功能,比如清除session來登出,因此如果時間來不及,可以做成連結跳轉到登入畫面就可以了。時間足夠的話,可以把清除session的真正登出功能也做上。
[技能檢定]題組一 步驟21 完成選單功能
選單功能是前台功能中較為複雜的一個項目,因為有主次選單的關係,很多人會在這邊搞混,要特別注意巢狀迴圈應用上容易犯錯的地方;
[技能檢定]題組一 步驟20 完成更多最新消息功能
當設定為顯示的最新消息超過五筆時會在首頁出現 More...
的連結,並導引使用者跳轉到 index.php?do=news
頁面。