處理使用者輸入與網站狀態

這一頁聚焦在表單處理、GET/POST、基本驗證、安全輸出,以及如何用 Session 與 Cookie 保存使用者狀態。

表單驗證Session

實務重點

任何來自使用者的資料都不能完全信任,接收後務必驗證、過濾並安全輸出。

1. GET 與 POST

GET 適合查詢,POST 常用於提交資料。

$_GET$_POSTmethod
初階
接收 POST 表單
<form method="post">
  姓名:<input type="text" name="username">
  <button type="submit">送出</button>
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] === "POST") {
  $username = $_POST["username"] ?? "";
  echo "你好," . $username;
}
?>

2. 安全輸出與基本驗證

使用 htmlspecialchars 降低 XSS 風險,並檢查資料是否為空。

htmlspecialcharstrimrequired
中階
安全輸出範例
<?php
if ($_SERVER["REQUEST_METHOD"] === "POST") {
  $username = trim($_POST["username"] ?? "");
  if ($username === "") {
    echo "請輸入姓名";
  } else {
    echo "歡迎你," . htmlspecialchars($username, ENT_QUOTES, "UTF-8");
  }
}
?>
重點:即使資料已驗證,也建議在輸出到 HTML 時再次做安全轉義。

3. Session 使用方式

Session 存放在伺服器端,常用於登入狀態與購物車。

session_start()$_SESSION
中階
登入者狀態示例
<?php
session_start();
$_SESSION["user"] = "admin";
echo "目前登入者:" . $_SESSION["user"];
?>

4. Cookie 基礎

Cookie 儲存在使用者瀏覽器,適合保存偏好設定。

setcookie()偏好
中階
設定 Cookie
<?php
setcookie("theme", "dark", time() + 3600 * 24 * 30, "/");
echo "Cookie 已設定";
?>