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