這是一開始碰 php 的時候會覺得蠻混亂的地方,或者說網頁後端的情況應該都差不多。
先問一個問題感受一下。請問 add_comment.php
這究竟是一個新增留言的頁面?還是用來處理新增留言表單資料的指令頁呢?
簡單說明
echo XXX
的方式產生 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 作為定位的基準點。概念上也算容易實作,可以參考這篇文章 的說明
註: 這幾天寫作狀態沒有很好,但還是希望盡量維持當天的文章當天寫,以日更的方式走完鐵人賽。