留言板、訂正筆記


Posted by s103071049 on 2021-06-27

規劃產品

功能面

一、建立與伺服器的連線

$conn = new mysqli($server_name, $user_name, $password, $db_name);
  if ($conn->connect_error) {
    die('資料庫連線錯誤');
  }
$conn->query('SET NAMES UTF8');
$conn->query('SET time_zone = "+8:00"');

二、顯示留言

error 最好印出是為甚麼 所以 $conn->error
sql query left join 部分:學習手冊 230 頁

三、新增留言

錯誤處理部分 => errorCode
透過 sql query 再後台新增資料,然後再呈現 => 重點是如何新增資料(透過 insert 指令) 學習手冊p248

四、新增會員機制

A、新增註冊功能 : 註冊頁面、註冊邏輯

1. 切版 2.錯誤處理 3.資料寫到後台

B、新增登入功能 : 登入頁面、登入邏輯

1. 切版 2.錯誤處理 3.輸入帳密與後台比對,若比對成功就是登入 4.紀錄登入
5. 有無登入顯示介面不同

C、新增登出功能

1. 清除登入紀錄 2. 修改顯示介面

五、編輯功能

A、編輯暱稱:檢查有無輸入、更新 SQL 表
B、編輯留言:
1.切版
2.設定權限
3.透過 echo 傳進的 id 做事情 (將id帶入不同的分頁)
4.透過 hidden input id 做事情 (將id帶入不同的分頁)

六、刪除功能

A、hard delete

1. 用 sql delete 刪除後台資料

B、soft delete

1. 用 sql update 後台資料,刪除的 is_deleted = 1
2. 調整顯示畫面

六、分頁功能

limit、offset,顯示畫面,分頁區塊


安全面

A、偽造身分

1. 首先:setcookie() => cookie 會被竄改
    一、從 cookie 抓 username 再抓 nickname

2. 接著:自己實作 session 機制
   一、從 cookie 抓 token 再抓 username 再再抓 nickname
   二、結構:(1) token/token表 (2) token表查users表(兩表互查) (3) 改相對應的代碼

3. 最後:用 php 內建 session 機制
   一、如何儲存 session 變數、如何取回他們的值

B、明文密碼問題

1. hash, add salt
   一、註冊時存在資料庫的密碼要經過雜湊;登入時要比對輸入的密碼與雜湊結果是否相同

C、XSS

1. 輸入的內容在畫面上是文字的形式,透過:htmlspecialchars

D、SQL injection
佔位符號、prepare() p256

E、權限管理問題

1. 多加條件在 SQL QUERY

#留言板訂正筆記







Related Posts

What Type of Laser Engraving Machine Should be Used for Stainless Steel Engraving?

What Type of Laser Engraving Machine Should be Used for Stainless Steel Engraving?

切版、助教課

切版、助教課

[ 筆記 ] 基礎 SEO 標籤 - meta、og、JSON-LD

[ 筆記 ] 基礎 SEO 標籤 - meta、og、JSON-LD


Comments