iT邦幫忙

2021 iThome 鐵人賽

DAY 24
0
自我挑戰組

程式導師實驗計畫第五期 回顧筆記系列 第 25

D24 第九週 php 留言板作業的心得之二

到底是頁面還是純指令

這是一開始碰 php 的時候會覺得蠻混亂的地方,或者說網頁後端的情況應該都差不多。

先問一個問題感受一下。請問 add_comment.php 這究竟是一個新增留言的頁面?還是用來處理新增留言表單資料的指令頁呢?

簡單說明

  • 頁面:直接寫 html 或是透過 php echo XXX 的方式產生 html 的內容
  • 純指令:只有 php 程式碼,本身不會產生 html 內容,但會透過 header("Location: <網址>"); 的方式跳轉到指定頁面

純指令通常像是 login, logout, add_comment, delete_commonet 這一類,本身只是一個「動作」,但在接受這些「動作」之前,通常會需要一個網頁表單讓使用者在上面輸入資料 (帳號、密碼、留言內容…等),所以會存在一個相對應的「頁面」,於是就產生了「頁面」和「純指令」的區別

純指令有一個最大特色就是一定會有 header("Location: <網址>"); 做跳轉頁面,雖然可以在純指令裡面寫 echo 或是 html 內容,但頁面最終還是會因為 header 的關係跳轉頁面,所以寫了也是白寫。

php 官方文件上也建議不要把 純指令頁面 混在一起寫,以免頁面呈現內容很混亂無法管理。
// 到截稿還是沒找到原出處,如果網路大德知道出處也歡迎留言告知,感謝

在作業,我的處理方式是純指令的 php 檔名加上 cmd_ 前綴做為區隔。

留言板 分頁機制

這算是寫留言板需要注意的地方。因為跟資料庫要留言結果回傳 1000 筆資料的話,姑且不論對資料庫會不會造成過大的效能負擔,頁面要顯示那麼多筆資料也是不太好閱讀的,所以這時候就需要一個分頁機制。

在 SQL 這邊是使用 OFFSET, LIMIT 這兩個參數來控制獲取資料的數量和位置。

課程中還有介紹另外一種分頁機制叫做 "Cursor-based pagination",主要是採用 id 作為定位的基準點。概念上也算容易實作,可以參考這篇文章 的說明

註: 這幾天寫作狀態沒有很好,但還是希望盡量維持當天的文章當天寫,以日更的方式走完鐵人賽。


上一篇
D23 第九週作業的心得
下一篇
D25 第十二週 (回憶篇)
系列文
程式導師實驗計畫第五期 回顧筆記31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言