Download presentation
Presentation is loading. Please wait.
1
PHP+MySQL互動式網頁程式設計班 範例實作-網路留言板 講師:林業峻 CSIE, NTU 6 /27, 2010
2
課程大綱 網路留言板程式簡介 刊登留言 列出留言主題清單與觀看內容 回覆留言 觀看留言主題內容與相關回覆 作業
3
網路留言板 網路留言板是網站提供給使用者互動的一個主要 介面,使用者可以透過留言的方式公告訊息給大 家觀看,並提供其他使用者回覆留言以達到資訊 交流。 一般網路留言板可以分成以下幾功能: 刊登留言 提供使用者建立一個主題,並留下想刊登之內容。 回覆留言 針對已經存在之留言主題,回覆相關言論或意見。
4
網路留言板主要的兩個功能 刊登留言 回覆留言 留言板最重要的步驟就是提供一個頁面給使用者新增留言, 使用者可以開啟一個主題並留下相關言論。
為了記錄使用者相關資料,例如留言時間與來源IP位置,一 般不會要求使用者自己填寫,我們必須用程式自動幫他把資 料記錄下來。 回覆留言 當有個使用者產生了一篇新的留言主題,其他使用者便可針 對該主題,回覆相關言論,因此我們需要提供另一個頁面, 給予使用者針對該主題留下相關訊息。 留言時間與來源IP位置,我們一樣用程式自動幫他把資料記 錄下來。
5
留言板設計的挑戰 刊登與回覆留言 以下實作範例將使用兩個資料表來區分主要刊登 留言與回覆留言。
在留言板的設計中,如何讓回覆的留言與該留言主題建立關 係,為設計留言板的一大挑戰。 MySQL資料表該如何規劃。 點選留言主題時,如何將主要留言與相對應的回覆文章列出。 回覆的留言如何與主要的留言建立關聯。 以下實作範例將使用兩個資料表來區分主要刊登 留言與回覆留言。
6
課程大綱 網路留言板程式簡介 刊登留言 列出留言主題清單與觀看內容 回覆留言 觀看留言主題內容與相關回覆 作業
7
刊登留言 建立步驟與設計考量: 在MySQL資料庫中建立資料表 (guestbook)
通常需要有留言人、主題、留言內容、發表時間與留言人IP位置等欄位 提供表單讓使用者填寫資料的HTML網頁 (guestbook_add.php) 至少要能填寫留言人、主題、留言內容 接收表單的PHP程式 (guestbook_add_action.php) 確任是否填寫留言人、主題、留言內容 取得使用者發表時間 取得使用者IP位置 插入到MySQL資料表guestbook 跳出留言成功並自動跳回留言板首頁: guestbook.php
8
留言板主題內容資料表 在MySQL中,建立一個guestbook資料表,其中 欄位包括: sn: 資料序號 name: 留言人
title: 留言主題 date: 發表時間 (datetime格式:西元年-月-日 時:分:秒) ip: 留言人來源IP content: 留言內容 (其他你想要使用者填寫的內容…)
9
使用include函式 使用PHP提供之include函式將常用的PHP程式 語法: 功能:將檔案匯到此呼叫include函式之處
試著將MySQL連線與選擇資料庫程式存到 mysql.php中, 再到各個需要做資料庫連線之PHP 程式將它匯入
10
取得系統時間資訊 很多時間我們需要知道執行程式時當下的日期時 間資訊,用來得知該動作是在什麼時候發生的。
我們可以使用PHP的date函式來做到此功能。 PHP的取得日期時間函式 $變數名稱= date("格式化輸出內容"); 將你想要的當下日期時間相關資訊,以你想要的格式存到變數中。 範例如下頁所示…
11
取得系統時間資訊 範例: 印出結果之格式: $date = date("Y-m-d H:i:s"); echo "$date";
:00:00
12
取得使用者IP位置 很多時間我們需要知道執行程式時當下的日期時 間資訊,用來得知該動作是在什麼時候發生的。
我們可以使用PHP的getenv函式來做到此功能。 PHP的取得使用者IP位置函式 $變數名稱= getenv("REMOTE_ADDR"); 將你想要的當下日期時間相關資訊,以你想要的格式存到變數中。 範例: $ip = getenv("REMOTE_ADDR"); echo "$ip"; (印出使用者IP位置)
13
有用的Javascript程式 當程式在MySQL中插入, 修改, 刪除一筆資料, 我們 希望網頁能夠自動回到首頁, 可以用以下方式
跳出對話方塊: alert(“內容”); 自動連結: location.href=“網址”; <script language="JavaScript"> alert("留言成功 "); //顯示確認方塊 location.href="guestbook.php"; //自動連結到guestbook.php </script>
14
練習 請完成下列範例程式chap06中PHP程式之功能 guestbook_add_action.php
15
課程大綱 網路留言板程式簡介 刊登留言 列出留言主題清單與觀看內容 回覆留言 觀看留言主題內容與相關回覆 作業
16
列出留言主題清單與觀看內容 建立步驟與設計考量: 列出所有留言主題的PHP程式 (guestbook.php)
建立一個表格,表格欄位包括留言人、主題、發表時間 選擇MySQL資料表guestbook中所有資料 使用重複控制(迴圈),將資料表中所有資料列在表格的每一列中。 上一步的過程中,印出主題時要加入超連結連到觀看留言頁面,並使用 GET方式將要看得主題之序號傳到該頁面: guestbook_content.php 觀看留言內容的PHP程式 (guestbook_content.php) 使用GET方式接收要觀看的留言序號 確任是否有收到序號 選擇MySQL資料表guestbook中序號欄位與GET方式取得之序號一致的 資料 列印出該筆資料之相關資料到一個表格中 建立一個超連結名為[回覆留言],並使用GET方式將要回覆的主題之序號 傳到該頁面: guestbook_reply.php
17
練習 請完成下列範例程式chap06中PHP程式之功能 guestbook.php
guestbook_content.php (列出主題資訊)
18
課程大綱 網路留言板程式簡介 刊登留言 列出留言主題清單與觀看內容 回覆留言 觀看留言主題內容與相關回覆 作業
19
回覆留言 建立步驟與設計考量: 在MySQL資料庫中建立資料表 (guestbook_reply)
需要有留言人、主題序號、留言內容、發表時間與留言人IP位置等欄位 提供表單讓使用者填寫資料的HTML網頁 (guestbook_reply.php) 使用GET方式接收要回覆的留言序號 確任是否有收到序號 能填寫留言人、留言內容 (不需填寫主題!) 將要回覆的留言序號再用POST方式傳遞給接收表單的程式 接收表單的PHP程式 (guestbook_reply_action.php) 確任是否收到將要回覆的留言序號與填寫留言人、留言內容 取得使用者發表時間 取得使用者IP位置 插入到MySQL資料表guestbook_reply 跳出回覆成功並自動跳回顯示留言主題頁面: guestbook_content.php ,並使用GET方式將要回覆之主題序號傳到該頁面
20
回覆留言內容資料表 在MySQL中,建立一個guestbook_reply資料表 ,其中欄位包括: sn: 資料序號 name: 留言人
title_sn: 回覆主題之序號 回覆留言不需要有自己的主題,而是要記錄他是哪個主題之回覆。 date: 發表時間 ip: 留言人來源IP content: 留言內容 (其他你想要使用者填寫的內容…)
21
練習 請完成下列範例程式chap06中PHP程式之功能 guestbook_reply_action.php
22
課程大綱 網路留言板程式簡介 刊登留言 列出留言主題清單與觀看內容 回覆留言 觀看留言主題內容與相關回覆 作業
23
觀看留言主題內容與相關回覆 建立步驟與設計考量: 修改觀看留言內容的PHP程式 (guestbook_content.php)
使用GET方式接收要觀看的留言序號 確任是否有收到序號 選擇MySQL資料表guestbook中序號欄位與GET方式取得之序號一致的 資料 列印出該筆資料之相關資料到一個表格中 建立一個超連結名為[回覆留言],並使用GET方式將要回覆的主題之序號 傳到該頁面: guestbook_reply.php 選擇MySQL資料表guestbook_reply中回覆主題序號欄位與GET方式取 得之序號一致的資料 使用重複控制(迴圈),將資料表中所有資料列在各表格中。
24
練習 請完成下列範例程式chap06中PHP程式之功能 guestbook_content.php (回覆留言部份)
25
課程大綱 網路留言板程式簡介 刊登留言 列出留言主題清單與觀看內容 回覆留言 觀看留言主題內容與相關回覆 作業
26
作業-網路留言板進階功能 使用PHP+MySQL製作一個網路留言板系統 延續chap06/guestbook.php功能
建立一個網路留言板系統,新增功能如下: 修改留言: 修改回覆留言:在guestbook_content.php中每個回覆留言內容後也加入一 個[修改]連結提供修改該回覆留言內容 修改留言主題:在guestbook_content.php中留言內容後加入一個[修改]連結 提供修改該留言內容 刪除留言: 刪除回覆留言:在guestbook_content.php中列出留言後加入一個[刪除]連結 提供刪除該回覆留言內容 刪除留言主題:在guestbook.php中所有列出之留言主題後加入一個刪除欄 位,提供刪除該主題的留言內容 (包含所有回覆留言內容)
27
繳交 使用FTP上傳 請使用FileZilla上傳作業至指定FTP主機 繳交期限:2010. 7/4(日) 主機: 使用者名稱: 密碼:
連接埠: 將程式存到自己學號之hw3資料夾 首頁檔名: guestbook.php 請使用FileZilla上傳作業至指定FTP主機 繳交期限: /4(日) 公佈解答後,不再收作業
Similar presentations