這個網站已經從原本的瀏覽器 localStorage 儲存改為伺服器端 JSON 檔案儲存,提供真正的資料持久化與跨裝置同步。
secsisweb/
├── index.php # 主要網站頁面
├── script.js # 前端 JavaScript(已更新為使用 API)
├── style.css # 樣式表
├── products.php # 商品管理 API(需要登入)
├── products-public.php # 公開商品讀取 API
├── auth.php # 管理員登入驗證
├── auth-status.php # 登入狀態查詢
├── logout.php # 登出
├── upload.php # 圖片上傳
├── config.php # 設定檔
├── env.php # 環境變數載入
├── data/ # 資料目錄
│ └── products.json # 商品資料檔案
├── uploads/ # 上傳圖片目錄
├── logs/ # 日誌目錄
│ └── auth.log # 登入日誌
└── test-api.html # API 測試頁面
- 讀取商品:
GET /products-public.php- 公開 API,無需登入 - 新增/編輯商品:
POST /products.php- 需要管理員權限 - 刪除商品:
DELETE /products.php- 需要管理員權限 - 重置商品:
PUT /products.php- 需要管理員權限
- 使用 Token 驗證(支援明文或 SHA256 雜湊)
- Session 管理
- IP 白名單(可選)
- 登入限速保護
- 支援 JPG、PNG、WebP、GIF 格式
- 檔案大小限制(預設 2MB)
- 隨機檔名防止衝突
- 僅限已登入管理員
# 基本設定 SITE_TITLE=美國保健品代購|正品保證・快速送達台灣 BRAND_TEXT=HealthShop 代購 BRAND_MARK=HS LINE_ID=@yourlineid EMAIL=service@yourbrand.tw # 管理員權限(擇一設定) ADMIN_TOKEN=your-secret-token-here # 或使用 SHA256 雜湊 ADMIN_TOKEN_SHA256=your-sha256-hash-here # 安全設定 ADMIN_IP_WHITELIST=192.168.1.1,127.0.0.1 AUTH_RATE_LIMIT_WINDOW_SECONDS=300 AUTH_RATE_LIMIT_MAX_ATTEMPTS=10 # 上傳設定 UPLOAD_MAX_BYTES=2097152 UPLOAD_ALLOWED_MIME=image/jpeg,image/png,image/webp,image/gif
確保 data/ 目錄可寫入:
chmod 775 data/
chown www-data:www-data data/ # 如果使用 Apache/Nginx- 在網站上按
Shift + A然後快速按Shift + L - 輸入管理員 Token
- 或點擊「商品管理」按鈕,然後點擊「複製管理連結」
- 新增商品: 點擊「新增商品」,填寫資訊後儲存
- 編輯商品: 點擊商品旁的「編輯」按鈕
- 刪除商品: 點擊商品旁的「刪除」按鈕
- 重置商品: 點擊「重置為預設商品」
- 在商品表單中選擇圖片檔案
- 系統會自動上傳並填入圖片網址
- 支援拖放或點擊選擇
GET /products-public.php
回應: {"ok": true, "products": [...]}
GET /products.php # 讀取商品列表
POST /products.php # 新增/編輯商品
DELETE /products.php # 刪除商品
PUT /products.php # 重置為預設商品
所有管理員 API 都需要先通過 auth.php 登入。
使用 test-api.html 頁面來測試各個 API 端點:
- 測試公開商品讀取
- 測試管理員登入
- 測試商品新增/編輯/刪除
- 所有管理員操作都需要驗證
- 圖片上傳有 MIME 類型與大小限制
- 支援 IP 白名單與登入限速
- Session 管理防止未授權存取
- 權限錯誤: 檢查
data/目錄權限 - 上傳失敗: 檢查檔案大小與格式
- 登入失敗: 確認 Token 設定正確
- API 錯誤: 檢查 PHP 錯誤日誌
- 登入日誌:
logs/auth.log - PHP 錯誤: 檢查伺服器錯誤日誌
從舊版本升級時:
- 備份現有的
localStorage商品資料 - 部署新的 PHP 檔案
- 建立
data/目錄 - 設定環境變數
- 測試 API 功能
- 後端: PHP 7.4+,無框架
- 前端: jQuery + 原生 JavaScript
- 資料儲存: JSON 檔案
- 認證: Session + Token
- 圖片處理: GD 或 Imagick 擴展