留言板、訂正筆記


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

Day07:V8 bytecode 系列文總結

Day07:V8 bytecode 系列文總結

Day 134

Day 134

React Native 手動換字型

React Native 手動換字型


Comments